I've spent most of yesterday trying to figure out what to use in my pom.xml file so I can get the ImageJ2 libraries that I need without inheriting from the ImageJ parent pom. I figured out the following settings, but they are far from optimal:
...
<repository>
<id>imagej.public</id>
<url>http://maven.imagej.net/content/groups/public</url>
</repository>
...
<dependency>
<groupId>net.imagej</groupId>
<artifactId>imagej</artifactId>
<version>2.0.0-rc-28</version>
</dependency>
...
The problem I have is that it appears that all of ImageJ2 is downloaded this way. There is a massive dependency tree and some 60+ jar files are now in my classpath in eclipse.
How can I pick and choose the individual libraries that I need, and which one of them is the base version (like ij.jar was for ImageJ1)? And how can I find the available version number(s)?
all of ImageJ2 is downloaded this way.
net.imagej:imagej
is indeed the application-level project that aggregates all the ImageJ2 components.
How can I pick and choose the individual libraries that I need And how can I find the available version number(s)?
All components of ImageJ2 are Mavenized and can be consumed directly/independently, the same way you included net.imagej:imagej
. There are several ways to browse the components and available versions - for example:
without inheriting from the ImageJ parent pom.
Even if you don't declare pom-imagej
as a parent pom, if you end up using multiple ImageJ components you would benefit from scope:importing it (or another appropriate BOM). Leaning on BOM dependency management will help ensure your components are at versions that work well together.
which one of them is the base version (like ij.jar was for ImageJ1)
It really depends on what you are trying to develop. The ImageJ wiki gives an overview of how functionality is divided in ImageJ2. There is also a comprehensive development section.
For more technical questions about ImageJ2 development, you may also want to try the ImageJ-devel mailing list.