[ 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