-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Guidelines for setting up a local workspace
Java Development Kit 11 with JavaFX development. We recommend Liberica JDK at https://bell-sw.com/pages/java-11.0.3/, because it includes JavaFX.
See https://github.com/JabRef/jabref/issues/2594 for the ongoing development.
An indication that JAVA_HOME
is not correctly set or no JDK is installed is following error message:
compileJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> java.lang.ExceptionInInitializerError (no error message)
- In the command line (terminal in Linux, cmd in Windows) run
javac -version
- If
javac
is not found, check your PATH environment variable, your JAVA_HOME environment variable or install the most recent SDK
If you do not have a GitHub account, create it at https://github.com.
We suggest Eclipse or IntelliJ.
The community edition should be enough. If not, a developer key for the JabRef project for the full version is available upon request.
You can find a IntelliJ Codestyle configuration file in the folder config
In case there are errors at the Gradle sync (and that there is no play button at the tests), fix the reference JDK.
Please use a JDK with JavaFX support. We recommend the LibericaJDK as it works out of the box. See https://bell-sw.com/.
The current JDK is most probably JDK 8 (and not JDK 11). Hints are given at https://stackoverflow.com/a/54507226/873282.
Please install EclEmma for code coverage.
In Ubuntu Linux, you can follow one of these guidelines to Install Eclipse:
In Windows download it from www.eclipse.org and run the installer.
- In Debian-based distros:
sudo apt-get install git
- In Windows: Go to http://git-scm.com/download/win download and install it. For more advanced tooling, you may use Git Extensions or SourceTree.
- Log into your GitHub account
- Go to https://github.com/JabRef/jabref
- Create a fork by clicking at fork button on the right top corner
- A fork repository will be created under your account (https://github.com/YOUR_USERNAME/jabref)
- In command line go to a folder you want to place the source code locally (parent folder of
jabref/
). To prevent issues along the way, it is strongly recommend to choose a path that does not contain any special (non-ASCII or whitespace) characters. - Run
git clone --depth=10 https://github.com/YOUR_USERNAME/jabref.git
. The--depth--10
is used to limit the download to ~20 MB instead of downloading the complete history (~800 MB). If you want to dig in our commit history, feel free to download everything. - Update submodules:
git submodule update --init
(not required for IntelliJ)
-
Go to the jabref folder (the repo you just cloned, if you are following this tutorial, just execute
cd jabref
) -
Execute the following steps from the git-bash:
- Run
./gradlew assemble
- If you use Eclipse: Additionally run
./gradlew eclipse
- If you use IntelliJ: No further setup is required
- Run
-
In rare cases you might encounter problems due to out-dated automatically generated source files. Running
./gradlew clean
deletes these old copies. Do not forget to run at least./gradlew eclipse
or./gradlew build
afterwards to regenerate the source files. -
./gradlew tasks
shows many other runnable tasks.
- Open Eclipse
- To Import your JabRef project go to menu File --> Import
- Choose General --> Existing projects in the workspace and "next"
- For "select root directory", browse until the root folder of your jabref just cloned from your repo (e.g.,
/home/user/<YOU>/jabref
) - Click on "Finish" and voilá!
- In Eclipse, right click on the project and choose Refresh workspace and then choose Run as --> Java application (Forget about the existing errors)
- Choose JabRefMain as the main class to be executed
In IntelliJ, execute following steps:
-
Open
build.gradle
as project -
Do not enable automatic sync if asked
-
Ensure that Projekt SDK is Java 11
- Right click on project -> Module Settings
- Platform Settings -> SDK
-
Ensure that each module has Java 11
-
File | Settings | Build, Execution, Deployment | Compiler | Java Compiler
-
All Modules have to have "Target bytecode version" as 11.
-
Ensure that
IntelliJGradle is used as execution service -
File | Settings | Build, Execution, Deployment | Build Tools | Gradle
-
Build and run using:
IntelliJ IDEAGradle -
Run tests using:
IntelliJ IDEAGradle -
Stop here
-
Open Module Settings (right click on the project root)
-
Select Project Settings --> Libraries
-
Add all *.jars from lib/ directory one by one: Make it available to all projects (multiselection is possible)
- Remove all starting with
com.lihaoyi
-
Remove all com.google.errorprone
-
Remove all org.checkerframework
-
Remove all jsr305
-
Enable impl.org.controlsfx.skin being visible:
- See https://intellij-support.jetbrains.com/hc/en-us/community/posts/360001797820/comments/360000274319
- Add
--add-exports org.controlsfx.controls/impl.org.controlsfx.skin=org.jabref --add-exports javafx.controls/javafx.scene.control=org.jabref --add-exports javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls --add-exports javafx.controls/com.sun.javafx.scene.control=org.jabref
as option to JabRef.main - Ensure that you click the "Apply" button. You have to select the black area below the input field to enable the Apply button.
-
Execute Build/Rebuild Project
-
Start the UI
-
Run org.jabref.JabRefMain:main
-
Ensure that "Use classpath of module JabRef.main" is selected
-
Currently does not start. We are working on it.
-
Apply workaround to have Gradle as execution environment
See https://youtu.be/FeQpygT0314. This ensures that src/main/gen
is present.
After that steps, please follow these:
- Install the CheckStyle-IDEA plugin, it can be found via plug-in repository (File > Settings > Plugins > Browse repositories).
- Go to File > Settings > Editor > Code Style, choose a code style (or create a new one)
- Click on the settings wheel (next to the scheme chooser), then Import scheme and choose "CheckStyle Configuration". Select the CheckStyle configuration file
config\checkstyle\checkstyle.xml
. Click OK and restart IntelliJ. - Go to File > Settings > Checkstyle and import the above CheckStyle configuration file. Activate it.
In case IntelliJ cannot compile the sources, tell IntelliJ to use Gradle for compiling and testing:
Got it running? GREAT! You are ready to lurk the code and contribute to JabRef 📚 . In the latter case, please read CONTRIBUTING.md.
- Home
- General Information
- Development
- Please go to our devdocs at https://devdocs.jabref.org
- GSoC 2025 ideas list
- Completed "Google Summer of Code" (GSoC) projects
- GSoC 2024 ‐ Improved CSL Support (and more LibreOffice‐JabRef integration enhancements)
- GSoC 2024 - Lucene Search Backend Integration
- GSoC 2024 ‐ AI‐Powered Summarization and “Interaction” with Academic Papers
- GSoC 2022 — Implement a Three Way Merge UI for merging BibTeX entries
- GSoC 2021 - Improve pdf support in JabRef
- GSoC 2021 - Microsoft Word Integration
- GSoc 2019 - Bidirectional Integration — Paper Writing — LaTeX and JabRef 5.0
- GSoC Archive
- Release
- JabCon Archive