This is an example Maven project implementing an ImageJ2 command.

For an example Maven project implementing an original ImageJ plugin, see: https://github.com/imagej/example-legacy-plugin

It is intended as an ideal starting point to develop new ImageJ2 commands in an IDE of your choice. You can even collaborate with developers using a different IDE than you.

  • In Eclipse, for example, it is as simple as File › Import... › Existing Maven Project.

  • In NetBeans, it is even simpler: File › Open Project.

  • The same works in IntelliJ.

  • If jEdit is your preferred IDE, you will need the Maven Plugin.

Die-hard command-line developers can use Maven directly by calling mvn in the project root.

However you build the project, in the end you will have the .jar file (called artifact in Maven speak) in the target/ subdirectory.

To copy the artifact into the correct place, you can call mvn -Dscijava.app.directory="/path/to/ImageJ2.app/". This will not only copy your artifact, but also all the dependencies.

Developing code in an IDE is convenient, especially for debugging. To that end, this project contains a main method which launches ImageJ2, loads an image and runs the command.

Since this project is intended as a starting point for your own developments, it is in the public domain.

How to use this project as a starting point

  1. Visit this link to create a new repository in your space using this one as a template.

  2. Clone your new repository.

  3. Edit the pom.xml file, fixing all the lines labeled FIXME.

  4. Remove the GaussFiltering.java file and add your own .java files to src/main/java/<package>/ (if you need supporting files such as icons in the resulting .jar file, put them into src/main/resources/)

  5. Replace the contents of README.md with information about your project.

  6. Make your initial commit and push the results!

Eclipse: To ensure that Maven copies the command to your ImageJ2 folder

  1. Go to Run Configurations...
  2. Choose Maven Build
  3. Add the following parameter:
    • name: scijava.app.directory
    • value: /path/to/ImageJ2.app/

This ensures that the final .jar file will also be copied into your ImageJ2 folder everytime you run the Maven build.