[ImageJ-devel] Eclipse hickup with enforcer rules of pom-fiji > 7.2.0

Stephan Saalfeld saalfelds at janelia.hhmi.org
Thu Mar 19 13:36:54 CDT 2015


Hi Mark,

> It is fine that mpicbg-trakem2 is a SNAPSHOT. The (P) indicates that a
> SNAPSHOT parent is making things unhappy. If the object was not allowed to
> be a SNAPSHOT you would see a (V). But it is misleading to call it a
> dependency.. consider it reworded.
> 

Sorry, I didn't get this.  Could you reword please ;) (I mean,
seriously, I didn't get it)?  A trial:

The complaint is that pom-trakem2, which is mpicbg-trakem2's parent is
at a SNAPSHOT-version?

> For SNAPSHOT-coupled multi-module builds, the contract is that SNAPSHOTS
> are allowed as long as everything is built from the top-level. If you built
> from a submodule, Maven could resolve the SNAPSHOT parent remotely, which
> would then not be guaranteed to match the parent in your multi-module
> project.
> 

I guess I got it.

> Eclipse is problematic because it splits each submodule out to the same
> level as the parent pom, and resolves each individually, thus causing
> RequireReproducibleBuilds to fail.
> 

That sounds like a perfect explanation.  But since Eclipse is the
primary development platform, that should definitely work.  I actually
think that it is more important that builds build in Eclipse without red
x-es than that builds are reproducible.  I am reverting to
pom-fiji-7.2.0 in the meantime to give myself peace of mind.

> I will look into ways of obtaining the reactor's parent pom locally[1], so
> that we can build submodules directly.
> 

Thanks a lot!

Best,
Stephan


> [1] https://github.com/scijava/scijava-maven-plugin/issues/12
> 
> On Thu, Mar 19, 2015 at 12:53 PM, Stephan Saalfeld <
> saalfelds at janelia.hhmi.org> wrote:
> 
> > Hi Curtis and Jay,
> >
> > I upgraded to Luna with the same effect.  7.2.0 works, 8.0.0 triggers
> > the unspecific complaint as show in the OP.
> >
> > Run As > Maven build... + Debug Output
> >
> > says:
> >
> > [INFO] Property 'imagej.app.directory' unset; Skipping copy-jars
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Reactor Summary:
> > [INFO]
> > [INFO] Aggregator project for Albert Cardona's TrakEM2 software suite
> > SUCCESS [  5.098 s]
> > [INFO] jars/VectorString.jar ............................. SUCCESS [
> > 8.813 s]
> > [INFO] mpicbg-trakem2 .................................... SUCCESS [
> > 8.074 s]
> > [INFO] plugins/TrakEM2_.jar .............................. SUCCESS
> > [ 28.727 s]
> > [INFO] jars/T2-NIT.jar ................................... SUCCESS
> > [ 14.724 s]
> > [INFO] jars/T2-TreelineGraph.jar ......................... SUCCESS
> > [ 13.202 s]
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] BUILD SUCCESS
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Total time: 01:19 min
> > [INFO] Finished at: 2015-03-19T13:45:46-05:00
> > [INFO] Final Memory: 250M/3444M
> > [INFO]
> > ------------------------------------------------------------------------
> >
> >
> >
> >
> >
> > But the error mark (red x) persists on all mudules' pom files with the
> > unspecific error message.
> >
> > Next test, running Maven build... in mpicbg-trakem2-1.2.3-SNAPSHOT, or
> > any of the other modules where the error manifests leads to more
> > informative output:
> >
> >
> > The following dependencies either are SNAPSHOT versions (V), contain
> > SNAPSHOT parents (P), or contain SNAPSHOT dependencies (D):
> >
> >  (P)  sc.fiji:mpicbg-trakem2:1.2.3-SNAPSHOT
> >
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] BUILD FAILURE
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Total time: 3.043 s
> > [INFO] Finished at: 2015-03-19T13:48:20-05:00
> > [INFO] Final Memory: 33M/1930M
> > [INFO]
> > ------------------------------------------------------------------------
> > [ERROR] Failed to execute goal
> > org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce
> > (enforce-rules) on project mpicbg-trakem2: Some Enforcer rules have
> > failed. Look above for specific messages explaining why the rule failed.
> > -> [Help 1]
> > org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
> > execute goal
> > org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce
> > (enforce-rules) on project mpicbg-trakem2: Some Enforcer rules have
> > failed. Look above for specific messages explaining why the rule failed.
> >         at
> >
> > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
> >         at
> >
> > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> >         at
> >
> > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> >         at
> >
> > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
> >         at
> >
> > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
> >         at
> >
> > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> >         at
> >
> > org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
> >         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
> >         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
> >         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
> >         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
> >         at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at
> >
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> >         at
> >
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >         at java.lang.reflect.Method.invoke(Method.java:606)
> >         at
> >
> > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> >         at
> > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> >         at
> >
> > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> >         at
> > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> > Caused by: org.apache.maven.plugin.MojoExecutionException: Some Enforcer
> > rules have failed. Look above for specific messages explaining why the
> > rule failed.
> >         at
> > org.apache.maven.plugins.enforcer.EnforceMojo.execute(EnforceMojo.java:209)
> >         at
> >
> > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
> >         at
> >
> > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> >         ... 19 more
> > [ERROR]
> > [ERROR]
> > [ERROR] For more information about the errors and possible solutions,
> > please read the following articles:
> > [ERROR] [Help 1]
> > http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
> >
> >
> >
> > Wait, mpicbg-trakem2-1.2.3-SNAPSHOT is the project that I am building,
> > not a dependency thereof---and it is at a SNAPSHOT version---yes,
> > because I am in development cycle---that should work---no?
> >
> > Thanks for your help,
> > Stephan
> >
> >
> >
> > On Thu, 2015-03-19 at 12:18 -0500, Curtis Rueden wrote:
> > > Hi Stephan,
> > >
> > > > Do you know about this [, do you have an idea what it is[
> > >
> > > Probably, this started happening because of this change:
> > >
> > >
> > https://github.com/scijava/pom-scijava/commit/5e6bddae9fcc965722c0fce1e2996c2e49b60411
> > >
> > > Which in general is a _good_ thing because it's better for Eclipse to
> > tell
> > > you than for Jenkins to tell you later after you pushed to master.
> > >
> > > If there are enforcer issues, they should be addressed, or if
> > unaddressable
> > > the enforcer can be squelched so that CLI and Jenkins also do not
> > complain.
> > >
> > > The weird thing here is that your Eclipse is complaining but our CLI is
> > > not. Jay may be on to something about a Maven version discrepancy. Why
> > are
> > > you still on Kepler? You could try upgrading to Luna—I know of at least
> > one
> > > annoying Maven-related bug that was fixed. You could also try using the
> > Run
> > > As > Maven build... and specifying the "Debug Output" option (which
> > passes
> > > the -X flag to Maven), and see if that tells you anything interesting.
> > >
> > > Regards,
> > > Curtis
> > >
> > > On Wed, Mar 18, 2015 at 10:33 PM, Stephan Saalfeld <
> > > saalfelds at janelia.hhmi.org> wrote:
> > >
> > > > Hi ImageJ developers,
> > > >
> > > > Eclipse complains
> > > >
> > > > Some Enforcer rules have failed. Look above for specific messages
> > > > explaining why the rule failed.
> > > >
> > > >
> > (org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce:enforce-rules:validate)
> > > >
> > > > in my TrakEM2 master for each module.  No further information (neither
> > > > above nor below) is provided.
> > > >
> > > > A terminal `mvn clean install`, however, succeeds without complaints.
> > > > So I assume that this is an Eclipse specific quirk.  I have Kepler
> > > > Service Release 1 installed.
> > > >
> > > > Do you know about this [, do you have an idea what it is[, and do you
> > > > know how to fix it]]]?
> > > >
> > > > Thanks in any case,
> > > > Stephan
> > > >
> > > >
> > > > _______________________________________________
> > > > 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
> >




More information about the ImageJ-devel mailing list