Hi everyone,<br><br>I have created a new branch on imglib.git called maven, which does two things:<br><br>1) It reorganizes imglib as a Maven project.<br><br>2) To achieve cleaner dependencies, it splits imglib into several subprojects:<br>
* imglib – core imglib infrastructure [dependencies: mpicbg]<br> * imglib-algorithms – algorithm implementations [dependencies: imglib, mpicbg, mines-jtk]<br> * imglib-imagej – ImageJ-specific display logic [dependencies: imglib, imglib-algorithms, imagej, mpicbg]<br>
* imglib-io – S&S's Bio-Formats support for imglib [dependencies: imglib, imglib-imagej, bio-formats]<br><br>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.<br>
<br>Also, I have implemented a new imglib Bio-Formats reader at:<br> <a href="http://dev.imagejdev.org/svn/imagej/trunk/bf-imglib">http://dev.imagejdev.org/svn/imagej/trunk/bf-imglib</a><br><br>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.<br>
<br>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.<br>
<br>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.<br>
<br>My questions are:<br><br>1) Do you like this split project organization for imglib?<br><br>2) What do you think of imglib using Maven in this way?<br><br>3) Any initial thoughts on the bf-imglib implementation?<br><br>
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.<br>
<br>Thanks,<br>Curtis<br>