1

I am using maven-3.2.3 ,maven-depedency-plugin-3.0.2 and maven-assembly-plugin-3.0.0 all of which are thread safe, but when running maven build with 4 threads

(mvn clean install -T 4),

I'am intermittently hitting

org.apache.maven.artifact.versioning.OverConstrainedVersionException

This never occurs if I try to build it with single thread, (mvn clean install )

Here is the stack-trace of the error

23:31:55 org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:3.0.0:single (my-service-dependency-assembly) on project my-service: Failed to create assembly: Unable to resolve dependencies for assembly 'service-third-party-dependencies'
23:31:55    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
23:31:55    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
23:31:55    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
23:31:55    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
23:31:55    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:188)
23:31:55    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:184)
23:31:55    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
23:31:55    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
23:31:55    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
23:31:55    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
23:31:55    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
23:31:55    at java.lang.Thread.run(Thread.java:745)
23:31:55 Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to create assembly: Unable to resolve dependencies for assembly 'service-third-party-dependencies'
23:31:55    at org.apache.maven.plugins.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:530)
23:31:55    at org.apache.maven.plugins.assembly.mojos.SingleAssemblyMojo.execute(SingleAssemblyMojo.java:58)
23:31:55    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
23:31:55    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
23:31:55    ... 11 more
23:31:55 Caused by: org.apache.maven.plugins.assembly.archive.ArchiveCreationException: Unable to resolve dependencies for assembly 'service-third-party-dependencies'
23:31:55    at org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:204)
23:31:55    at org.apache.maven.plugins.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:476)
23:31:55    ... 14 more
23:31:55 Caused by: org.apache.maven.plugins.assembly.artifact.DependencyResolutionException: Failed to resolve dependencies for assembly: 
23:31:55    at org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.resolveTransitively(DefaultDependencyResolver.java:235)
23:31:55    at org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.resolve(DefaultDependencyResolver.java:118)
23:31:55    at org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.resolveDependencySets(DefaultDependencyResolver.java:154)
23:31:55    at org.apache.maven.plugins.assembly.archive.phase.DependencySetAssemblyPhase.execute(DependencySetAssemblyPhase.java:95)
23:31:55    at org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:181)
23:31:55    ... 15 more
23:31:55 Caused by: org.apache.maven.artifact.versioning.OverConstrainedVersionException: No versions are present in the repository for the artifact with a range [13.0.0,14.0.999)
com.mygroup.group:my-artifact:jar:null
Optimus
  • 697
  • 2
  • 8
  • 22
  • Based on the message `Unable to resolve dependencies for assembly 'service-third-party-dependencies' 23:31:55 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)` I would recommend to clean your local cache ($HOME/.m2/repository) and try to build your project via `mvn clean package` nothing more...this should work without any issue... – khmarbaise Mar 20 '18 at 06:52
  • @khmarbaise with `mvn clean package` it works fine, but the issue is only when I use parallel build feature that maven provides. – Optimus Mar 20 '18 at 07:10
  • Have you checked that the given version range `with a range [13.0.0,14.0.999) com.mygroup.group:my-artifact:jar:null` of your artifacts exists in your repository? – khmarbaise Mar 20 '18 at 07:15
  • @khmarbaise yea the version exists – Optimus Mar 20 '18 at 07:22
  • So now we reached the point that we can't continue without full pom files and assembly descriptor etc. – khmarbaise Mar 20 '18 at 07:42

1 Answers1

0

After running multiple the build multiple times figured out that there is an issue with maven-assembly-plugin's dependency resolution. The assembly plugin does not honour the exclusions defined in the pom.xml when creating an assembly.

To Fix this issue I moved the dependency gathering part to maven-dependency-plugin and used assembly plugin only to create the tar bundle of all the artifacts.

That solved the issue.

Optimus
  • 697
  • 2
  • 8
  • 22