Issue Details (XML | Word | Printable)

Key: MNGECLIPSE-884
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Achim Huegen
Votes: 12
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Maven Integration for Eclipse

Launched Maven process doesn't use workspace resolution

Created: 02/Sep/08 03:16 PM   Updated: 31/Dec/08 02:47 PM
Component/s: Maven Launcher
Affects Version/s: 0.9.6
Fix Version/s: None

Time Tracking:
Original Estimate: Not Specified
Remaining Estimate: 0 minutes
Remaining Estimate - 0 minutes
Time Spent: 1 hour
Time Spent - 1 hour

Issue Links:
Related
 


 Description  « Hide

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".



Eugene Kuleshov added a comment - 02/Sep/08 03:23 PM

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


Achim Huegen added a comment - 03/Sep/08 07:39 AM

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.


Igor Fedorenko added a comment - 03/Sep/08 10:16 AM - 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

Joonas Koivunen added a comment - 29/Sep/08 12:45 PM

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


Eugene Kuleshov added a comment - 29/Sep/08 12:54 PM

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.