Version 1 (modified by 9 years ago) ( diff ) | ,
---|
This page describes how to compile the Java source code in order to get a runnable josm-custom.jar
file.
Getting the Source
Compiling using ant
The easiest way to compile JOSM, provided Java JDK and Ant on your machine are properly set up, is to go to the josm directory and type:
ant
That will create a dist/josm-custom.jar
file if successful.
Compiling using eclipse
Use eclipse and the provided .project
and .classpath
file. Just add a new Java Project using the JOSM source folder as existing path.
As of Eclipse 3.5.2 and the latest JOSM (August 10, 2011), you will have problems compiling, due to problems compiling Mappaint MapCSS with a fresh install of Eclipse. First you will need the JavaCC plugin for Eclipse. To install it in Eclipse, go to Help->New Software... then add the site http://eclipse-javacc.sourceforge.net/ as a source, and install the JavaCC Eclipse Plug-in. Then in the Package Explorer, expand org.openstreetmap.josm.gui.mappaint.mapcss, right-click on MapCSSParser.jj, and "Compile with JavaCC". This should put new java files in a package called org.openstreetmap.josm.gui.mappaint.mapcss.parsergen, but if it doesn't, you will have to create the package manually (right-click and create package), then drag the new files into the package you just created (they should be easy to identify based on the light gray text that denotes it was compiled from MapCSSParser.jj). This should resolve any import issues in MapCSSStyleSource.java, and you should now be able to compile JOSM.
If you try to compile the JOSM sources in Eclipse and get errors like "The method marktr(String) is undefined for the type SomeType" look at solution suggested at mailing list.
There are also two Videos available at youtube, which show how to checkout JOSM into Eclipse and how to checkout a JOSM plugin into Eclipse.
Unit Tests
It is most convenient, to run tests from an IDE like Eclipse or Netbeans. There is also an ant task to run all tests (but you cannot rerun individual tests).
All unit tests can be run in headless mode (i.e, without a graphic display), allowing them to be run in continuous integration projects.
Running Test from Command line
You can run tests from the command line, as well. Include all libraries in the class path like this:
export TESTCP=".:test/unit:test/functional:dist/josm-custom.jar:test/lib/fest/fest-assert-1.0.jar:test/lib/fest/MRJToolkitStubs-1.0.jar:test/lib/fest/jcip-annotations-1.0.jar:test/lib/fest/fest-swing-1.1.jar:test/lib/fest/fest-reflect-1.1.jar:test/lib/fest/fest-util-1.0.jar:test/lib/fest/debug-1.0.jar:test/lib/junit/junit-4.11.jar:test/lib/jfcunit.jar:test/lib/unitils-core/ognl-2.6.9.jar:test/lib/unitils-core/commons-lang-2.3.jar:test/lib/unitils-core/unitils-core-3.3.jar:test/lib/unitils-core/commons-logging-1.1.jar:test/lib/unitils-core/commons-collections-3.2.jar"
Then run for example
javac -cp $TESTCP test/unit/org/openstreetmap/josm/data/projection/ProjectionRefTest.java java -cp $TESTCP org.junit.runner.JUnitCore org.openstreetmap.josm.data.projection.ProjectionRefTest
Attachments (3)
- netbean-open.png (17.4 KB ) - added by 9 years ago.
- netbeans-compile-run.png (21.8 KB ) - added by 9 years ago.
- netbean-open2.png (31.8 KB ) - added by 5 years ago.
Download all attachments as: .zip