[ImageJ-devel] Imglib project organization & Bio-Formats support

Stephan Saalfeld saalfeld at mpi-cbg.de
Wed Sep 29 12:03:07 CDT 2010


Dear Curtis,

I like the separation and I am looking forward to check maven as a
builder.  What about you, Steffi and Johannes?

Best,
StephanS




On Mon, 2010-09-27 at 12:27 -0500, Curtis Rueden wrote:
> Hi everyone,
> 
> I have created a new branch on imglib.git called maven, which does two
> things:
> 
> 1) It reorganizes imglib as a Maven project.
> 
> 2) To achieve cleaner dependencies, it splits imglib into several
> subprojects:
>   * imglib – core imglib infrastructure [dependencies: mpicbg]
>   * imglib-algorithms – algorithm implementations [dependencies:
> imglib, mpicbg, mines-jtk]
>   * imglib-imagej – ImageJ-specific display logic [dependencies:
> imglib, imglib-algorithms, imagej, mpicbg]
>   * imglib-io – S&S's Bio-Formats support for imglib [dependencies:
> imglib, imglib-imagej, bio-formats]
> 
> One major reason to do this is to avoid a circular dependency between
> imglib and ij, since we want ij-2.0 to depend on imglib core.
> 
> Also, I have implemented a new imglib Bio-Formats reader at:
>   http://dev.imagejdev.org/svn/imagej/trunk/bf-imglib
> 
> Unlike imglib-io, it fully supports N-dimensional data in imglib, and
> without any dependency on ImageJ. However, I am still polishing it a
> bit—it needs to do everything that imglib-io did, including setting
> physical XYZ calibration. Once it is ready, if you all agree, I could
> replace the old imglib-io implementation.
> 
> Regarding Maven: I think it makes development in Eclipse much better
> (using the m2eclipse & m2eclipse Extras plugins). Project dependencies
> in Eclipse with Maven are extremely smart. For example: let's say I
> have bf-imglib open alone. For the dependencies (ij.jar and
> imglib.jar), Eclipse uses the ij.jar and imglib.jar present in the
> local Maven repository. But let's say I want to fix a bug in ImageJ
> that affects bf-imglib. I just open the ij Maven project, and the
> bf-imglib dependency magically becomes an Eclipse project reference
> rather than a binary JAR reference.
> 
> Maven also solves the Eclipse configuration wars with
> conflicting .project, .classpath and .settings files being committed
> to the repository from various machines—you simply add these files
> to .gitignore and the files are generated locally when you first
> import the Maven project using m2eclipse. After that you can tweak
> your local project settings however you like.
> 
> My questions are:
> 
> 1) Do you like this split project organization for imglib?
> 
> 2) What do you think of imglib using Maven in this way?
> 
> 3) Any initial thoughts on the bf-imglib implementation?
> 
> If people are happy with these changes, I would like to merge the
> imglib maven branch to master, and maybe also move bf-imglib into the
> imglib git repository. If people have concerns, let's discuss them to
> find a better solution that works for everyone.
> 
> Thanks,
> Curtis





More information about the ImageJ-devel mailing list