[ImageJ-devel] pom-fiji TrackMate update?

Curtis Rueden ctrueden at wisc.edu
Fri Oct 3 12:53:42 CDT 2014


Hi Jay,

> In TrackMate v 2.5 pom there is...
>
> <parent>
> <groupId>sc.fiji</groupId>
> <artifactId>pom-fiji</artifactId>
> <version>2.0.0-beta-1-SNAPSHOT</version>
> <relativePath/>
> </parent>
> <artifactId>TrackMate_</artifactId>
> <version>2.5.0</version>
> <name>plugins/TrackMate_.jar</name>

OK, I finally made a little time to look at this.

Yes, this is a major problem with TrackMate's releases. Version 2.5.0
inherits from sc.fiji:pom-fiji:2.0.0-beta-1-SNAPSHOT. This is forbidden in
Maven terms -- a release must depend only on other releases.

This is a consequence of the fact that Fiji artifacts do not use the
maven-release-plugin for releases, and hence nothing ever actually enforces
that stipulation. The solution will be for all Fiji plugins to extend a
_release_ version of the pom-fiji parent, not a SNAPSHOT version.

We are moving in that direction... but until we complete that migration,
downstream artifacts such as JEX will _not_ be stable when they depend on a
Fiji project such as TrackMate, _even if_ the dependency purports to be a
"release" version! Caveat emptor.

Regards,
Curtis

On Sun, Sep 14, 2014 at 7:40 AM, Jay Warrick <jay.w.warrick at gmail.com>
wrote:

> I changed the subject line from Re: [ImageJ-devel] Maven TrackMate
> Dependency Question because of the following...
>
> Oh boy, really at the extent of my knowledge... but I think I may have it,
> is this what is happening??? Is maven pulling TrackMate v 2.3 via TrackMate
> v2.5 and fiji?
>
> In TrackMate v 2.5 pom there is...
>
> <parent>
> <groupId>sc.fiji</groupId>
> <artifactId>pom-fiji</artifactId>
> <version>2.0.0-beta-1-SNAPSHOT</version>
> <relativePath/>
> </parent>
> <artifactId>TrackMate_</artifactId>
> <version>2.5.0</version>
> <name>plugins/TrackMate_.jar</name>
>
> which thus pulls in pom-fiji 2.0.0-beta-1-SNAPSHOT where there is the
> following...
>
> <fiji-compat.version>2.0.0-SNAPSHOT</fiji-compat.version>
>
> and
>
> <dependency>
> <groupId>sc.fiji</groupId>
> <artifactId>fiji-compat</artifactId>
> </dependency>
>
> The pom for fiji-compat uses pom-fiji 2.0.0-SNAPSHOT as parent
>
> <parent>
> <groupId>sc.fiji</groupId>
> <artifactId>pom-fiji</artifactId>
> <version>2.0.0-SNAPSHOT</version>
> <relativePath/>
> </parent><
> artifactId>fiji-compat</artifactId>
> <name>jars/fiji-compat.jar</name>
>
> The pom-fiji 2.0.0-SNAPSHOT has the following
>
> <TrackMate.version>2.3.0-SNAPSHOT</TrackMate.version>
>
> and
>
> <dependency>
> <groupId>sc.fiji</groupId>
> <artifactId>TrackMate_</artifactId>
> <version>${TrackMate.version}</version>
> </dependency>
>
> Thus, ?maybe? with TrackMate v 2.5's pom parent being pom-fiji
> 2.0.0-beta-1-SNAPSHOT, fiji-compate 2.0.0-SNAPSHOT gets pulled in which
> pulls pom-fiji 2.0.0-SNAPSHOT which tries to pulls in TrackMate v 2.3 which
> then tries to use <groupId>${jama.groupId}</groupId> instead of
> <groupId>gov.nist.math</groupId> for jama.
>
> Is this counter to what is intended or is there some maven magic which
> should right this "wrong"? If it is not intended and could be affecting
> things, what might be the fix?
>
> Thanks all,
>
> Jay
>
>
> On Sep 14, 2014, at 6:51 AM, Jay Warrick <jay.w.warrick at gmail.com> wrote:
>
> Ok. So this makes more sense...  TrackMate v 2.3 uses
> the <groupId>${jama.groupId}</groupId> which causes the error, which was
> fixed by TrackMate v2.5 which uses <groupId>gov.nist.math</groupId>.
>
> So the whole issue boils down to, "Why is maven trying to do ANYTHING with
> v 2.3 when I can't find a single dependency on this version? If I can get
> Maven to stop looking for v 2.3 my issue will be solved.
>
> Thoughts on where to search for hidden/residual links to v 2.3 given what
> I've checked already?
>
> Thanks,
>
> Jay
>
> On Sep 14, 2014, at 6:45 AM, Jay Warrick <jay.w.warrick at gmail.com> wrote:
>
> I think never mind. Still learning about Maven, but it looks like the
> groupID is assumed the same as the parent so you TrackMate doesn't need to
> define it. Should have guessed this based on how everything else seems to
> work in Maven.
>
> On Sep 14, 2014, at 6:15 AM, Jay Warrick <jay.w.warrick at gmail.com> wrote:
>
> If this might be on the right track, is there any way to test this on my
> end? Use offline mode and go into my .m2 repository and muck with poms or
> something?
> On Sep 14, 2014, at 6:11 AM, Jay Warrick <jay.w.warrick at gmail.com> wrote:
>
> Hi JY,
>
> Could it be a problem with the TrackMate groupId? Searching the internet
> with the error string brought up this past issue with jama and SPIM...
>
> https://groups.google.com/forum/#!topic/fiji-devel/zEhBIf1bZEA
>
> When I look at the TrackMate pom, I don't think I see a "groupId" defined
> for the TrackMate plugin. Hard for me to completely decipher in the issue
> discussion if this would cause the problem I'm seeing or if it would merely
> prevent the imageJ/Fiji folks from "seeing" that such a problem exists.
>
> Stephan Preibisch, Curtis, and Dscho - Does that sound like the right
> track? Thoughts?
>
> Thanks,
>
> Jay
>
> On Sep 13, 2014, at 9:20 AM, Jean-Yves Tinevez <tinevez at pasteur.fr> wrote:
>
>  On 13-Sep-14 16:01, Jay Warrick wrote:
>
> Hi Jean-Yves,
>
>  Thanks for the quick reply! Here are the poms for my multi module
> project. I added to the default "pom.xml" names to make things easier to
> follow. The Master pom is the parent pom for each of my project modules.
> The parent of Master is scijava. The JEX module has essentially one class,
> Main which calls the main class in Core. Core contains essentially the
> whole program including the dependency on TrackMate. Broken contains broken
> code for one reason or another but doesn't really come into play as the
> Broken module is not part of the build process. It is "disabled" using a
> profile within the JEX module. Despite this, I still confirmed it didn't
> depend on TrackMate 2.3 using the Eclipse dependency hierarchy viewer, just
> in case.
>
>
> Ok thank you for the crystal clear report.
> We are on the verge of what I know of maven. However I remember having a
> similar issue that was fixed by making the parent of the master pom the
> fiji plugin pom, like for TrackMate pom.
>
> Any chance you could just try that first?
> jy
>
>
> ------------------------------
>    <http://www.avast.com/>
>
> This email is free from viruses and malware because avast! Antivirus
> <http://www.avast.com/> protection is active.
>
>  _______________________________________________
> ImageJ-devel mailing list
> ImageJ-devel at imagej.net
> http://imagej.net/mailman/listinfo/imagej-devel
>
>
> _______________________________________________
> ImageJ-devel mailing list
> ImageJ-devel at imagej.net
> http://imagej.net/mailman/listinfo/imagej-devel
>
>
> _______________________________________________
> ImageJ-devel mailing list
> ImageJ-devel at imagej.net
> http://imagej.net/mailman/listinfo/imagej-devel
>
>
> _______________________________________________
> ImageJ-devel mailing list
> ImageJ-devel at imagej.net
> http://imagej.net/mailman/listinfo/imagej-devel
>
>
>
>
> _______________________________________________
> ImageJ-devel mailing list
> ImageJ-devel at imagej.net
> http://imagej.net/mailman/listinfo/imagej-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://imagej.net/pipermail/imagej-devel/attachments/20141003/55617007/attachment-0001.html>


More information about the ImageJ-devel mailing list