<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Thanks Mark for the clarification.<div class=""><br class=""></div><div class="">Best,</div><div class=""><br class=""></div><div class="">Jay</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 26, 2015, at 9:32 AM, Mark Hiner <<a href="mailto:hiner@wisc.edu" class="">hiner@wisc.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class=""><div class="">Hi all,<br class=""><br class="">>looks like you can check the install/version of maven that eclipse is using by going to the menu Eclipse > Preferences > Maven > Installations<br class=""><br class=""></div><div class="">Thanks Jay. To clarify the history here:<br class=""><br class="">1) We made a custom Maven enforcer rule that ensures no SNAPSHOT dependencies/parents are used, ever.<br class="">2) We then relaxed this restriction to allow SNAPSHOT couplings between modules in multi-module builds[1].<br class="">3) Eclipse used to simply ignore Maven enforcer rules - but Curtis made some updates to make this possible.<br class="">4) Stephan then discovered that our enforcer rule fails in Eclipse because each submodule is built individually, and our rule required building from the aggregator itself.<br class=""></div><div class=""><br class=""></div>Anyway! I pushed a tentative fix to the scijava-maven-plugin to allow building individual submodules, and added a branch to trakEM2[2] with some instructions on how to test this locally. Using this change I'm able to import the trakEM2 projects into Eclipse with no enforcer failures.<br class=""><br class=""></div>This release will probably go into Fiji this week, at which point I can delete the trakEM2 branch. Just wanted to put it out there so interested parties could try it.<br class=""></div><div class=""><br class=""></div>Best,<br class=""></div>Mark<br class=""><br class=""></div>P.S. for a reminder why we're doing this, see [3]<br class=""><div class=""><div class=""><div class=""><div class=""><br class="">[1] <a href="http://books.sonatype.com/mvnex-book/reference/multimodule.html" class="">http://books.sonatype.com/mvnex-book/reference/multimodule.html</a><br class="">[2] <a href="https://github.com/trakem2/TrakEM2/tree/test-enforcer" class="">https://github.com/trakem2/TrakEM2/tree/test-enforcer</a><br class="">[3] <a href="http://imagej.net/Reproducible_builds#Reproducible_builds" class="">http://imagej.net/Reproducible_builds#Reproducible_builds</a><br class=""></div></div></div></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Mar 19, 2015 at 3:51 PM, Jay Warrick <span dir="ltr" class=""><<a href="mailto:warrick@wisc.edu" target="_blank" class="">warrick@wisc.edu</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">Hard for me to follow if you guys have solved this one or now but, Re: the potential of a maven version discrepancy between Eclipse and the CLI, it looks like you can check the install/version of maven that eclipse is using by going to the menu Eclipse > Preferences > Maven > Installations <div class=""><br class=""></div><div class="">Only now just found this now and I see it is a different install than I use at the command line. Looks like you can point it to a particular install though to make sure they are the same.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class=""><br class=""></div><div class="">Jay</div><div class=""><div class="h5"><div class=""><br class=""><div class=""><div class=""><blockquote type="cite" class=""><div class="">On Mar 19, 2015, at 1:50 PM, Curtis Rueden <<a href="mailto:ctrueden@wisc.edu" target="_blank" class="">ctrueden@wisc.edu</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">Hi Stephan,<div class=""><br class=""></div><div class="">To reword Mark's explanation:</div><div class=""><br class=""></div><div class="">The current behavior is a bug, which happens when you try to build _only_ the submodule, rather than building at the top level of the multi-module project.</div><div class=""><br class=""></div><div class="">It is triggered in Eclipse because Eclipse's project configuration runs each submodule's build separately, in some sense.</div><div class=""><br class=""></div><div class="">Mark said he would change the scijava-maven-plugin's use of the word "dependency" in the case of parent POM linkage, since a parent POM is not a "dependency" in Maven terms. (This is what he meant by "consider it reworded" -- like a genie saying "It's as good as done!")</div><div class=""><br class=""></div><div class="">We will also be exploring how to solve this bug in general, such that it _does_ become possible to build only a submodule of a multi-module project, without the enforcer throwing a tantrum.</div><div class=""><br class=""></div><div class="">Regards,</div><div class="">Curtis</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Mar 19, 2015 at 1:36 PM, Stephan Saalfeld <span dir="ltr" class=""><<a href="mailto:saalfelds@janelia.hhmi.org" target="_blank" class="">saalfelds@janelia.hhmi.org</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Mark,<br class="">
<span class=""><br class="">
> It is fine that mpicbg-trakem2 is a SNAPSHOT. The (P) indicates that a<br class="">
> SNAPSHOT parent is making things unhappy. If the object was not allowed to<br class="">
> be a SNAPSHOT you would see a (V). But it is misleading to call it a<br class="">
> dependency.. consider it reworded.<br class="">
><br class="">
<br class="">
</span>Sorry, I didn't get this.  Could you reword please ;) (I mean,<br class="">
seriously, I didn't get it)?  A trial:<br class="">
<br class="">
The complaint is that pom-trakem2, which is mpicbg-trakem2's parent is<br class="">
at a SNAPSHOT-version?<br class="">
<span class=""><br class="">
> For SNAPSHOT-coupled multi-module builds, the contract is that SNAPSHOTS<br class="">
> are allowed as long as everything is built from the top-level. If you built<br class="">
> from a submodule, Maven could resolve the SNAPSHOT parent remotely, which<br class="">
> would then not be guaranteed to match the parent in your multi-module<br class="">
> project.<br class="">
><br class="">
<br class="">
</span>I guess I got it.<br class="">
<span class=""><br class="">
> Eclipse is problematic because it splits each submodule out to the same<br class="">
> level as the parent pom, and resolves each individually, thus causing<br class="">
> RequireReproducibleBuilds to fail.<br class="">
><br class="">
<br class="">
</span>That sounds like a perfect explanation.  But since Eclipse is the<br class="">
primary development platform, that should definitely work.  I actually<br class="">
think that it is more important that builds build in Eclipse without red<br class="">
x-es than that builds are reproducible.  I am reverting to<br class="">
pom-fiji-7.2.0 in the meantime to give myself peace of mind.<br class="">
<span class=""><br class="">
> I will look into ways of obtaining the reactor's parent pom locally[1], so<br class="">
> that we can build submodules directly.<br class="">
><br class="">
<br class="">
</span>Thanks a lot!<br class="">
<br class="">
Best,<br class="">
Stephan<br class="">
<div class=""><div class=""><br class="">
<br class="">
> [1] <a href="https://github.com/scijava/scijava-maven-plugin/issues/12" target="_blank" class="">https://github.com/scijava/scijava-maven-plugin/issues/12</a><br class="">
><br class="">
> On Thu, Mar 19, 2015 at 12:53 PM, Stephan Saalfeld <<br class="">
> <a href="mailto:saalfelds@janelia.hhmi.org" target="_blank" class="">saalfelds@janelia.hhmi.org</a>> wrote:<br class="">
><br class="">
> > Hi Curtis and Jay,<br class="">
> ><br class="">
> > I upgraded to Luna with the same effect.  7.2.0 works, 8.0.0 triggers<br class="">
> > the unspecific complaint as show in the OP.<br class="">
> ><br class="">
> > Run As > Maven build... + Debug Output<br class="">
> ><br class="">
> > says:<br class="">
> ><br class="">
> > [INFO] Property 'imagej.app.directory' unset; Skipping copy-jars<br class="">
> > [INFO]<br class="">
> > ------------------------------------------------------------------------<br class="">
> > [INFO] Reactor Summary:<br class="">
> > [INFO]<br class="">
> > [INFO] Aggregator project for Albert Cardona's TrakEM2 software suite<br class="">
> > SUCCESS [  5.098 s]<br class="">
> > [INFO] jars/VectorString.jar ............................. SUCCESS [<br class="">
> > 8.813 s]<br class="">
> > [INFO] mpicbg-trakem2 .................................... SUCCESS [<br class="">
> > 8.074 s]<br class="">
> > [INFO] plugins/TrakEM2_.jar .............................. SUCCESS<br class="">
> > [ 28.727 s]<br class="">
> > [INFO] jars/T2-NIT.jar ................................... SUCCESS<br class="">
> > [ 14.724 s]<br class="">
> > [INFO] jars/T2-TreelineGraph.jar ......................... SUCCESS<br class="">
> > [ 13.202 s]<br class="">
> > [INFO]<br class="">
> > ------------------------------------------------------------------------<br class="">
> > [INFO] BUILD SUCCESS<br class="">
> > [INFO]<br class="">
> > ------------------------------------------------------------------------<br class="">
> > [INFO] Total time: 01:19 min<br class="">
> > [INFO] Finished at: 2015-03-19T13:45:46-05:00<br class="">
> > [INFO] Final Memory: 250M/3444M<br class="">
> > [INFO]<br class="">
> > ------------------------------------------------------------------------<br class="">
> ><br class="">
> ><br class="">
> ><br class="">
> ><br class="">
> ><br class="">
> > But the error mark (red x) persists on all mudules' pom files with the<br class="">
> > unspecific error message.<br class="">
> ><br class="">
> > Next test, running Maven build... in mpicbg-trakem2-1.2.3-SNAPSHOT, or<br class="">
> > any of the other modules where the error manifests leads to more<br class="">
> > informative output:<br class="">
> ><br class="">
> ><br class="">
> > The following dependencies either are SNAPSHOT versions (V), contain<br class="">
> > SNAPSHOT parents (P), or contain SNAPSHOT dependencies (D):<br class="">
> ><br class="">
> >  (P)  sc.fiji:mpicbg-trakem2:1.2.3-SNAPSHOT<br class="">
> ><br class="">
> > [INFO]<br class="">
> > ------------------------------------------------------------------------<br class="">
> > [INFO] BUILD FAILURE<br class="">
> > [INFO]<br class="">
> > ------------------------------------------------------------------------<br class="">
> > [INFO] Total time: 3.043 s<br class="">
> > [INFO] Finished at: 2015-03-19T13:48:20-05:00<br class="">
> > [INFO] Final Memory: 33M/1930M<br class="">
> > [INFO]<br class="">
> > ------------------------------------------------------------------------<br class="">
> > [ERROR] Failed to execute goal<br class="">
> > org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce<br class="">
> > (enforce-rules) on project mpicbg-trakem2: Some Enforcer rules have<br class="">
> > failed. Look above for specific messages explaining why the rule failed.<br class="">
> > -> [Help 1]<br class="">
> > org.apache.maven.lifecycle.LifecycleExecutionException: Failed to<br class="">
> > execute goal<br class="">
> > org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce<br class="">
> > (enforce-rules) on project mpicbg-trakem2: Some Enforcer rules have<br class="">
> > failed. Look above for specific messages explaining why the rule failed.<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)<br class="">
> >         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)<br class="">
> >         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)<br class="">
> >         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)<br class="">
> >         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)<br class="">
> >         at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)<br class="">
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br class="">
> >         at<br class="">
> ><br class="">
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br class="">
> >         at<br class="">
> ><br class="">
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br class="">
> >         at java.lang.reflect.Method.invoke(Method.java:606)<br class="">
> >         at<br class="">
> ><br class="">
> > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)<br class="">
> >         at<br class="">
> > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)<br class="">
> >         at<br class="">
> ><br class="">
> > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)<br class="">
> >         at<br class="">
> > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)<br class="">
> > Caused by: org.apache.maven.plugin.MojoExecutionException: Some Enforcer<br class="">
> > rules have failed. Look above for specific messages explaining why the<br class="">
> > rule failed.<br class="">
> >         at<br class="">
> > org.apache.maven.plugins.enforcer.EnforceMojo.execute(EnforceMojo.java:209)<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)<br class="">
> >         at<br class="">
> ><br class="">
> > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)<br class="">
> >         ... 19 more<br class="">
> > [ERROR]<br class="">
> > [ERROR]<br class="">
> > [ERROR] For more information about the errors and possible solutions,<br class="">
> > please read the following articles:<br class="">
> > [ERROR] [Help 1]<br class="">
> > <a href="http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException" target="_blank" class="">http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException</a><br class="">
> ><br class="">
> ><br class="">
> ><br class="">
> > Wait, mpicbg-trakem2-1.2.3-SNAPSHOT is the project that I am building,<br class="">
> > not a dependency thereof---and it is at a SNAPSHOT version---yes,<br class="">
> > because I am in development cycle---that should work---no?<br class="">
> ><br class="">
> > Thanks for your help,<br class="">
> > Stephan<br class="">
> ><br class="">
> ><br class="">
> ><br class="">
> > On Thu, 2015-03-19 at 12:18 -0500, Curtis Rueden wrote:<br class="">
> > > Hi Stephan,<br class="">
> > ><br class="">
> > > > Do you know about this [, do you have an idea what it is[<br class="">
> > ><br class="">
> > > Probably, this started happening because of this change:<br class="">
> > ><br class="">
> > ><br class="">
> > <a href="https://github.com/scijava/pom-scijava/commit/5e6bddae9fcc965722c0fce1e2996c2e49b60411" target="_blank" class="">https://github.com/scijava/pom-scijava/commit/5e6bddae9fcc965722c0fce1e2996c2e49b60411</a><br class="">
> > ><br class="">
> > > Which in general is a _good_ thing because it's better for Eclipse to<br class="">
> > tell<br class="">
> > > you than for Jenkins to tell you later after you pushed to master.<br class="">
> > ><br class="">
> > > If there are enforcer issues, they should be addressed, or if<br class="">
> > unaddressable<br class="">
> > > the enforcer can be squelched so that CLI and Jenkins also do not<br class="">
> > complain.<br class="">
> > ><br class="">
> > > The weird thing here is that your Eclipse is complaining but our CLI is<br class="">
> > > not. Jay may be on to something about a Maven version discrepancy. Why<br class="">
> > are<br class="">
> > > you still on Kepler? You could try upgrading to Luna—I know of at least<br class="">
> > one<br class="">
> > > annoying Maven-related bug that was fixed. You could also try using the<br class="">
> > Run<br class="">
> > > As > Maven build... and specifying the "Debug Output" option (which<br class="">
> > passes<br class="">
> > > the -X flag to Maven), and see if that tells you anything interesting.<br class="">
> > ><br class="">
> > > Regards,<br class="">
> > > Curtis<br class="">
> > ><br class="">
> > > On Wed, Mar 18, 2015 at 10:33 PM, Stephan Saalfeld <<br class="">
> > > <a href="mailto:saalfelds@janelia.hhmi.org" target="_blank" class="">saalfelds@janelia.hhmi.org</a>> wrote:<br class="">
> > ><br class="">
> > > > Hi ImageJ developers,<br class="">
> > > ><br class="">
> > > > Eclipse complains<br class="">
> > > ><br class="">
> > > > Some Enforcer rules have failed. Look above for specific messages<br class="">
> > > > explaining why the rule failed.<br class="">
> > > ><br class="">
> > > ><br class="">
> > (org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce:enforce-rules:validate)<br class="">
> > > ><br class="">
> > > > in my TrakEM2 master for each module.  No further information (neither<br class="">
> > > > above nor below) is provided.<br class="">
> > > ><br class="">
> > > > A terminal `mvn clean install`, however, succeeds without complaints.<br class="">
> > > > So I assume that this is an Eclipse specific quirk.  I have Kepler<br class="">
> > > > Service Release 1 installed.<br class="">
> > > ><br class="">
> > > > Do you know about this [, do you have an idea what it is[, and do you<br class="">
> > > > know how to fix it]]]?<br class="">
> > > ><br class="">
> > > > Thanks in any case,<br class="">
> > > > Stephan<br class="">
> > > ><br class="">
> > > ><br class="">
> > > > _______________________________________________<br class="">
> > > > ImageJ-devel mailing list<br class="">
> > > > <a href="mailto:ImageJ-devel@imagej.net" target="_blank" class="">ImageJ-devel@imagej.net</a><br class="">
> > > > <a href="http://imagej.net/mailman/listinfo/imagej-devel" target="_blank" class="">http://imagej.net/mailman/listinfo/imagej-devel</a><br class="">
> > > ><br class="">
> ><br class="">
> ><br class="">
> > _______________________________________________<br class="">
> > ImageJ-devel mailing list<br class="">
> > <a href="mailto:ImageJ-devel@imagej.net" target="_blank" class="">ImageJ-devel@imagej.net</a><br class="">
> > <a href="http://imagej.net/mailman/listinfo/imagej-devel" target="_blank" class="">http://imagej.net/mailman/listinfo/imagej-devel</a><br class="">
> ><br class="">
<br class="">
</div></div></blockquote></div><br class=""></div>
_______________________________________________<br class="">ImageJ-devel mailing list<br class=""><a href="mailto:ImageJ-devel@imagej.net" target="_blank" class="">ImageJ-devel@imagej.net</a><br class=""><a href="http://imagej.net/mailman/listinfo/imagej-devel" target="_blank" class="">http://imagej.net/mailman/listinfo/imagej-devel</a><br class=""></div></blockquote></div><br class=""></div></div></div></div></div><br class="">_______________________________________________<br class="">
ImageJ-devel mailing list<br class="">
<a href="mailto:ImageJ-devel@imagej.net" class="">ImageJ-devel@imagej.net</a><br class="">
<a href="http://imagej.net/mailman/listinfo/imagej-devel" target="_blank" class="">http://imagej.net/mailman/listinfo/imagej-devel</a><br class="">
<br class=""></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></body></html>