[ 
https://issues.apache.org/jira/browse/MNG-7024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17236999#comment-17236999
 ] 

Martin Kanters commented on MNG-7024:
-------------------------------------

Had some time to do a quick analysis. I am not familiar with the project setup 
of Apache Camel, so I took some assumptions. Please let me know if I'm 
incorrect.

Maven 3.6.3 is unaware of the whole Camel multi module project when it's 
invoked in the subdirectory "apache-camel". Basically, Maven will just regard 
apache-camel as a single project. 
But since [MNG-6118|https://issues.apache.org/jira/browse/MNG-6118] made 
master, Maven _is_ by default aware of the full multi module project including 
all submodules.

The submodule "apache-camel" will download all Camel's components (among other 
things) and uses the maven-assembly-plugin to zip all of it.
Maven 3.6.3 being unaware of the multi module project, {{ mvn install -e }} 
will result in a download of all jars from a remote repo, or getting them from 
the local repository when they are present.
Maven master is aware of the submodules, and it will try to resolve 
dependencies by using the latest build source code (which reside in the target 
directories as pointed out by [~gnodet]).

Of course I'm not aware of the total build process, but here are some 
workarounds that you can consider:
- Invoke {{mvn install -e --non-recursive}}. This will make Maven unaware again 
of the bigger multi module project.
- Make sure that the submodules that will end up in the zip have no target 
folder (e.g. invoke {{mvn clean}}). It should download from the repository then.
- Make sure that the submodules that will end up in the zip are built into 
jars. Then the assembly plugin will (probably) take those jars and put them in 
the zip.

> Directory instead of file in an artifact
> ----------------------------------------
>
>                 Key: MNG-7024
>                 URL: https://issues.apache.org/jira/browse/MNG-7024
>             Project: Maven
>          Issue Type: Bug
>    Affects Versions: 3.7.0-candidate
>            Reporter: Guillaume Nodet
>            Priority: Blocker
>             Fix For: 3.7.0-candidate
>
>
> When trying to build camel assembly with maven 3.7.0-SNAPSHOT, I hit the 
> following exception
> {code}
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-assembly-plugin:3.0.0:single (bin) on project 
> apache-camel: Failed to create assembly: Error adding file 
> 'org.apache.camel:camel-spring:jar:3.7.0-SNAPSHOT' to archive: 
> /Users/gnodet/work/git/camel/components/camel-spring/target/classes isn't a 
> file. -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
> goal org.apache.maven.plugins:maven-assembly-plugin:3.0.0:single (bin) on 
> project apache-camel: Failed to create assembly: Error adding file 
> 'org.apache.camel:camel-spring:jar:3.7.0-SNAPSHOT' to archive: 
> /Users/gnodet/work/git/camel/components/camel-spring/target/classes isn't a 
> file.
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:218)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:159)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:151)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:115)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:79)
>     at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>  (SingleThreadedBuilder.java:64)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
> (LifecycleStarter.java:131)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:319)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:206)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:119)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:982)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:296)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:200)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
> (NativeMethodAccessorImpl.java:62)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
> (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:566)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
> (Launcher.java:282)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
> (Launcher.java:225)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
> (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to create 
> assembly: Error adding file 
> 'org.apache.camel:camel-spring:jar:3.7.0-SNAPSHOT' to archive: 
> /Users/gnodet/work/git/camel/components/camel-spring/target/classes isn't a 
> file.
>     at org.apache.maven.plugins.assembly.mojos.AbstractAssemblyMojo.execute 
> (AbstractAssemblyMojo.java:530)
>     at org.apache.maven.plugins.assembly.mojos.SingleAssemblyMojo.execute 
> (SingleAssemblyMojo.java:58)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
> (DefaultBuildPluginManager.java:136)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:213)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:159)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:151)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:115)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:79)
>     at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>  (SingleThreadedBuilder.java:64)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
> (LifecycleStarter.java:131)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:319)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:206)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:119)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:982)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:296)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:200)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
> (NativeMethodAccessorImpl.java:62)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
> (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:566)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
> (Launcher.java:282)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
> (Launcher.java:225)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
> (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> Caused by: 
> org.apache.maven.plugins.assembly.archive.ArchiveCreationException: Error 
> adding file 'org.apache.camel:camel-spring:jar:3.7.0-SNAPSHOT' to archive: 
> /Users/gnodet/work/git/camel/components/camel-spring/target/classes isn't a 
> file.
>     at org.apache.maven.plugins.assembly.archive.task.AddArtifactTask.asFile 
> (AddArtifactTask.java:180)
>     at org.apache.maven.plugins.assembly.archive.task.AddArtifactTask.execute 
> (AddArtifactTask.java:132)
>     at 
> org.apache.maven.plugins.assembly.archive.task.AddDependencySetsTask.addNormalArtifact
>  (AddDependencySetsTask.java:263)
>     at 
> org.apache.maven.plugins.assembly.archive.task.AddDependencySetsTask.addDependencySet
>  (AddDependencySetsTask.java:175)
>     at 
> org.apache.maven.plugins.assembly.archive.task.AddDependencySetsTask.execute 
> (AddDependencySetsTask.java:120)
>     at 
> org.apache.maven.plugins.assembly.archive.phase.DependencySetAssemblyPhase.execute
>  (DependencySetAssemblyPhase.java:104)
>     at 
> org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiver.createArchive
>  (DefaultAssemblyArchiver.java:181)
>     at org.apache.maven.plugins.assembly.mojos.AbstractAssemblyMojo.execute 
> (AbstractAssemblyMojo.java:476)
>     at org.apache.maven.plugins.assembly.mojos.SingleAssemblyMojo.execute 
> (SingleAssemblyMojo.java:58)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
> (DefaultBuildPluginManager.java:136)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:213)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:159)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:151)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:115)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:79)
>     at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>  (SingleThreadedBuilder.java:64)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
> (LifecycleStarter.java:131)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:319)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:206)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:119)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:982)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:296)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:200)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
> (NativeMethodAccessorImpl.java:62)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
> (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:566)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
> (Launcher.java:282)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
> (Launcher.java:225)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
> (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> Caused by: org.codehaus.plexus.archiver.ArchiverException: 
> /Users/gnodet/work/git/camel/components/camel-spring/target/classes isn't a 
> file.
>     at org.codehaus.plexus.archiver.AbstractArchiver.addFile 
> (AbstractArchiver.java:448)
>     at org.codehaus.plexus.archiver.AbstractArchiver.addFile 
> (AbstractArchiver.java:375)
>     at 
> org.apache.maven.plugins.assembly.archive.archiver.AssemblyProxyArchiver.addFile
>  (AssemblyProxyArchiver.java:425)
>     at org.apache.maven.plugins.assembly.archive.task.AddArtifactTask.asFile 
> (AddArtifactTask.java:175)
>     at org.apache.maven.plugins.assembly.archive.task.AddArtifactTask.execute 
> (AddArtifactTask.java:132)
>     at 
> org.apache.maven.plugins.assembly.archive.task.AddDependencySetsTask.addNormalArtifact
>  (AddDependencySetsTask.java:263)
>     at 
> org.apache.maven.plugins.assembly.archive.task.AddDependencySetsTask.addDependencySet
>  (AddDependencySetsTask.java:175)
>     at 
> org.apache.maven.plugins.assembly.archive.task.AddDependencySetsTask.execute 
> (AddDependencySetsTask.java:120)
>     at 
> org.apache.maven.plugins.assembly.archive.phase.DependencySetAssemblyPhase.execute
>  (DependencySetAssemblyPhase.java:104)
>     at 
> org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiver.createArchive
>  (DefaultAssemblyArchiver.java:181)
>     at org.apache.maven.plugins.assembly.mojos.AbstractAssemblyMojo.execute 
> (AbstractAssemblyMojo.java:476)
>     at org.apache.maven.plugins.assembly.mojos.SingleAssemblyMojo.execute 
> (SingleAssemblyMojo.java:58)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
> (DefaultBuildPluginManager.java:136)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:213)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:159)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:151)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:115)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:79)
>     at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>  (SingleThreadedBuilder.java:64)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
> (LifecycleStarter.java:131)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:319)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:206)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:119)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:982)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:296)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:200)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
> (NativeMethodAccessorImpl.java:62)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
> (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:566)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
> (Launcher.java:282)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
> (Launcher.java:225)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
> (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:347)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to