|
I wasn't aware of that option, but it doesn't change a lot. FYI, this would not work even if m2e was properly resolving workspace dependency. WarMojo expects dependencies to be JARs and fails if it sees a directory (see exception below). This is a common problem for most of existing maven plugins. The only solution is to run maven package on TestApp project. [INFO] [war:war] [INFO] Packaging webapp [INFO] Assembling webapp[TestWeb] in [/var/tmp/703-example-projects/TestWeb/target/TestWeb-1.0-SNAPSHOT] [INFO] Processing war project [ERROR] The following mojo encountered an error while executing: Group-Id: org.apache.maven.plugins Artifact-Id: maven-war-plugin Version: 2.1-alpha-1 Mojo: war brought in via: packaging: war While building project: Group-Id: com.example.maven.test Artifact-Id: TestWeb Version: 1.0-SNAPSHOT From file: /var/tmp/703-example-projects/TestWeb/pom.xml Reason: Failed to copy file for artifact[com.example.maven.test:TestCore:jar:1.0-SNAPSHOT:compile] java.io.FileNotFoundException: /var/tmp/703-example-projects/TestCore/target/classes (Is a directory) at java.io.FileInputStream.<init>(FileInputStream.java:135) at org.codehaus.plexus.util.FileUtils.copyFile(FileUtils.java:929) at org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask.copyFile(AbstractWarPackagingTask.java:304) at org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask$1.registered(AbstractWarPackagingTask.java:145) at org.apache.maven.plugin.war.util.WebappStructure.registerFile(WebappStructure.java:113) at org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask.copyFile(AbstractWarPackagingTask.java:140) at org.apache.maven.plugin.war.packaging.ArtifactsPackagingTask.performPackaging(ArtifactsPackagingTask.java:76) at org.apache.maven.plugin.war.packaging.WarProjectPackagingTask.handleArtifacts(WarProjectPackagingTask.java:151) at org.apache.maven.plugin.war.packaging.WarProjectPackagingTask.performPackaging(WarProjectPackagingTask.java:72) at org.apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:364) at org.apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:317) at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:166) at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:130) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:579) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:498) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:265) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:191) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:149) at org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223) at org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:304) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1) at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:904) at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbedder.java:304) at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176) at org.apache.maven.cli.MavenCli.main(MavenCli.java:63) at org.apache.maven.cli.MavenCli.main(MavenCli.java:52) Error stacktrace: org.apache.maven.lifecycle.LifecycleExecutionException: Internal error in the plugin manager executing goal 'org.apache.maven.plugins:maven-war-plugin:2.1-alpha-1:war': Mojo execution failed. at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:505) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:265) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:191) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:149) at org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223) at org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:304) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1) at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:904) at org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbedder.java:304) at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176) at org.apache.maven.cli.MavenCli.main(MavenCli.java:63) at org.apache.maven.cli.MavenCli.main(MavenCli.java:52) Caused by: org.apache.maven.plugin.PluginExecutionException: Mojo execution failed. at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:601) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:498) ... 12 more Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to copy file for artifact[com.example.maven.test:TestCore:jar:1.0-SNAPSHOT:compile] at org.apache.maven.plugin.war.packaging.ArtifactsPackagingTask.performPackaging(ArtifactsPackagingTask.java:99) at org.apache.maven.plugin.war.packaging.WarProjectPackagingTask.handleArtifacts(WarProjectPackagingTask.java:151) at org.apache.maven.plugin.war.packaging.WarProjectPackagingTask.performPackaging(WarProjectPackagingTask.java:72) at org.apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:364) at org.apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:317) at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:166) at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:130) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:579) ... 13 more Caused by: java.io.FileNotFoundException: /var/tmp/703-example-projects/TestCore/target/classes (Is a directory) at java.io.FileInputStream.<init>(FileInputStream.java:135) at org.codehaus.plexus.util.FileUtils.copyFile(FileUtils.java:929) at org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask.copyFile(AbstractWarPackagingTask.java:304) at org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask$1.registered(AbstractWarPackagingTask.java:145) at org.apache.maven.plugin.war.util.WebappStructure.registerFile(WebappStructure.java:113) at org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask.copyFile(AbstractWarPackagingTask.java:140) at org.apache.maven.plugin.war.packaging.ArtifactsPackagingTask.performPackaging(ArtifactsPackagingTask.java:76) ... 20 more [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILED Are there any possible workarounds for this problem? At least maven-war-plugin 2.1-alpha-2 and -1 fail with the same FileNotFoundException.. Joonas, the war plugin needs the actual jars to package war files, so workspace dependency resolution is not going to help, unless we'll actually create those jars somehow under the hood. If you only need to deploy your web application, it is better to use WTP integration and its deployment features. In that case jars are not needed. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
As a workaround you could explicitly create launch configuration for your project and explicitly enable workspace dependency resolution.