[ http://jira.codehaus.org/browse/MNGECLIPSE-107?page=all ]

Robert Elliot updated MNGECLIPSE-107:
-------------------------------------

    Attachment: m2eclipse-patch.txt

This patch causes M2Eclipse to add a classpath attribute 
org.eclipse.jst.j2ee.deployableArtifact=true to all items it adds to a 
project's classpath that ought to be packaged up with it if the project should 
be packaged as a war or ear.

At present this will do nothing useful, but it is possible that future releases 
of the WTP will recognise this attribute and act accordingly when deploying to 
a server.  See https://bugs.eclipse.org/bugs/show_bug.cgi?id=154251

> Dependency Resolver and Eclipse Web Tools Platform (WTP)
> --------------------------------------------------------
>
>                 Key: MNGECLIPSE-107
>                 URL: http://jira.codehaus.org/browse/MNGECLIPSE-107
>             Project: Maven 2.x Extension for Eclipse
>          Issue Type: Improvement
>          Components: Dependency Resolver
>         Environment: Eclipse WTP
>            Reporter: Dimitry Voytenko
>         Attachments: m2eclipse-patch.txt, wtp-samples.zip
>
>
> All tests have been done using the solution provided in the 
> http://jira.codehaus.org/browse/MNGECLIPSE-59. This solution works very well, 
> but there're specifics when using it with WebTools.
> Attached are sample projects that demonstrate the issue (tested under Eclipse 
> 3.1.2). Unpack wtp-samples.zip and import projects in the workspace. Patch 
> from MNGECLIPSE-59 should be applied. Rebuild both projects. Build of 
> "web-main" should fail with an error:
>    "Build path contains duplicate entry: 'web-component' for project web-main"
> The problem occures b/c of conflict b/w Java classpath (in the Java Build 
> Path > Projects) and Maven2 classpath container. They both contain 
> "web-component" project. If go to Properties > Java Build Path > Projects and 
> remove "web-component" project manually everything will compile fine, but WTP 
> will not include "web-component" in the runtime classpath when running the 
> "web-main" project in the servlet container (e.g. Tomcat). To fix that, you 
> have to include "web-component" in the J2EE Module Dependencies for 
> "web-main" (see Properties > J2EE Module Dependencies). When you try to save 
> J2EE Module Dependencies changes, you get the same "duplicate classpath 
> entry" error.
> J2EE Module Dependencies use regular Java classpath for a project and thus 
> Maven's container should work just fine (theoretically). The problem occures 
> exactly when WTP tries to save J2EE Module Dependencies and synchronize them 
> with Java classpath. It most probably tries to add a project marked in the 
> "module dependencies" to the list of dependent java projects and fails.
> One solution here could be to source "J2EE Module Dependencies" from the 
> Maven's configuration for a project. J2EE Module Dependencies are stored 
> within the project in the ".settings/.component" and looks something like the 
> following:
>         <dependent-module deploy-path="/WEB-INF/lib" 
> handle="module:/resource/web-component/web-component">
>             <dependency-type>uses</dependency-type>
>         </dependent-module>
> This information is present in the POM with dependency scope other than 
> "provided" and "system".
> If it's not possible to extend WTP to read module dependencies from Maven's 
> POM this issue can be redirected to WTP itself, as there's nothing illegal 
> with the way Maven2 extends classpath (as specified in MNGECLIPSE-59). It's 
> only the synchronization procedure of WTP configuration that fails in this 
> case.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to