Maven Integration for Eclipse

Launched Maven process doesn't use workspace resolution

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 0.9.6
  • Fix Version/s: None
  • Component/s: Maven Launcher
  • Labels:
    None
  • Number of attachments :
    0

Description

I'm using eclipse 3.4 with wtp 3.0.1, m2eclipse 0.9.6.20080822-1053 and the embedded maven.
Import the example projects from MNGECLIPSE-703 (703-example-projects.zip) with activated
workspace resolution and launch a "Run as .. maven package" on the TestWeb project.
It will fail with "Transitive dependency resolution for scope: compile has failed for your project".

Issue Links

Activity

Hide
Eugene Kuleshov added a comment -

As a workaround you could explicitly create launch configuration for your project and explicitly enable workspace dependency resolution.

Show
Eugene Kuleshov added a comment - As a workaround you could explicitly create launch configuration for your project and explicitly enable workspace dependency resolution.
Hide
Achim Huegen added a comment -

I wasn't aware of that option, but it doesn't change a lot.
The dependencies are like this: TestWeb -> TestCore -> TestEjbClient
If "Resolve workspace artifacts" is deactivated, the maven launch fails on locating TestCore.
If "Resolve workspace artifacts" is activated, it fails on locating TestEjbClient.

Show
Achim Huegen added a comment - I wasn't aware of that option, but it doesn't change a lot. The dependencies are like this: TestWeb -> TestCore -> TestEjbClient If "Resolve workspace artifacts" is deactivated, the maven launch fails on locating TestCore. If "Resolve workspace artifacts" is activated, it fails on locating TestEjbClient.
Hide
Igor Fedorenko added a comment - - edited

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
Show
Igor Fedorenko added a comment - - edited 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
Hide
Joonas Koivunen added a comment -

Are there any possible workarounds for this problem? At least maven-war-plugin 2.1-alpha-2 and -1 fail with the same FileNotFoundException..

Show
Joonas Koivunen added a comment - Are there any possible workarounds for this problem? At least maven-war-plugin 2.1-alpha-2 and -1 fail with the same FileNotFoundException..
Hide
Eugene Kuleshov added a comment -

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.

Show
Eugene Kuleshov added a comment - 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.

People

Vote (14)
Watch (4)

Dates

  • Created:
    Updated:

Time Tracking

Estimated:
Not Specified
Original Estimate - Not Specified
Remaining:
0m
Remaining Estimate - 0 minutes
Logged:
1h
Time Spent - 1 hour