Code documentation

Development tools

Code Structure

Techniques and Standards

How To

Functional Info

Background Info

JMRI Code: Building with Command Line Tools

Those of you who prefer a command line approach might want to investigate ant and maven, build utilities for Java projects. In the JMRI devlopment ecosystem, these two tools complement each other, each providing unique capabilities the other tool does not.


Ant is available for download at Install it, then:

To make sure everything is working, before you e.g. commit your code back, please do:

ant clean alltest

and make sure the tests run cleanly.

A new JMRI checkout should build cleanly. If not, please check with the JMRIusers or jmri-developers mailings lists for help.


Maven is an extensible plugin-based build tool for Java development. Maven is available for download at Maven will download the appropriate plugins and dependencies as needed. After installation, the following can be done from your JMRI working copy (see Getting the Code for instructions on creating a working copy):
Run unit and integration tests
mvn test
Use mvn test -Dtest=PATTERN to run specific tests. See Running a Single Test for more details, including running only a single test method.
Check for vulnerabilities in JMRI dependencies
mvn compile net.ossindex:ossindex-maven-plugin:audit
Check for newer versions of JMRI dependencies
mvn versions:display-dependency-updates
Check for newer versions of the maven plugins
mvn versions:display-plugin-updates
Run DecoderPro
mvn antrun:run -Danttarget=decoderpro
Run PanelPro
mvn antrun:run -Danttarget=panelpro
The scripts/mvn-test includes all the options necessary to run the Travis CI test Maven job from your local command line.