Overview on Developing
This page presents all development information around JabRef.
Starting point for newcomers
For users documentation, please head to https://docs.jabref.org.
- External: Sync your fork with the JabRef repository
- External (🇩🇪): Branches and pull requests: https://github.com/unibas-marcelluethi/software-engineering/blob/master/docs/week2/exercises/practical-exercises.md
org.jabref.cli is responsible for handling the command line options.
During development, one can configure IntelliJ to pass command line paramters:
Passing command line arguments using gradle is currently not possible as all arguments (such as
-Dfile.encoding=windows-1252) are passed to the application.
Without jlink, it is not possible to generate a fat jar any more. During development, the capabilities of the IDE has to be used.
Diagram showing aspects of groups: Groups.uml.
Architectural Decision Records
Architectural decisions for JabRef are recorded.
For new ADRs, please use template.md as basis. More information on MADR is available at https://adr.github.io/madr/. General information about architectural decision records is available at https://adr.github.io/. Add them to the list of architectural decision records.
- Q: I get
java: package org.jabref.logic.journals does not exist.
A: You have to ignore
buildSrc/src/main as source directory in IntelliJ as indicated in our setup guide.
Also filed as IntelliJ issue [IDEA-240250](https://youtrack.jetbrains.com/issue/IDEA-240250).