Develop JabRef

This page presents all development informatation around JabRef. For users documentation see https://docs.jabref.org.

How tos

Command Line

The package org.jabref.cli is responsible for handling the command line options.

During development, one can configure IntelliJ to pass command line paramters:

IntelliJ-run-configuration

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.

Groups

UML diagram showing aspects of groups: Groups.uml.

Decision Records

This log lists the decisions for JabRef.

  • ADR-0000 - Use Markdown Architectural Decision Records

  • ADR-0001 - Use Crowdin for translations

  • ADR-0002 - Use slf4j together with log4j2 for logging

  • ADR-0003 - Use Gradle as build tool

  • ADR-0003 - Use openjson as replacement for org.json

  • ADR-0004 - Use MariaDB Connector

  • ADR-0005 - Fully Support UTF-8 Only For LaTeX Files

  • ADR-0006 - Only translated strings in language file

  • ADR-0007 - Provide a human-readable changelog

For new ADRs, please use docs/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/.