Transitive dependencies of optional dependencies are included in WEB-INF/lib
----------------------------------------------------------------------------

                 Key: MWAR-111
                 URL: http://jira.codehaus.org/browse/MWAR-111
             Project: Maven 2.x War Plugin
          Issue Type: Bug
    Affects Versions: 2.0.2
         Environment: Maven 2.0.7, JDK 1.6.0_01-b06, JavaEE 5
            Reporter: Chris Lance
         Attachments: TestProject.zip

I have an EAR project (TestEAR) which contains two modules:

1. A JAR module (TestJAR) which has one dependency: commons-lang 2.3
2. A WAR module (TestWAR) which uses [these 
instructions|http://maven.apache.org/plugins/maven-war-plugin/examples/war-manifest-guide.html]
 to declare a dependency on TestJAR so that TestJAR is included in TestWAR's 
manifest classpath, but not copied into WEB-INF/lib (i.e. declares the 
dependency optional).

This works fine for TestJAR itself, but its transitive dependency (commons-lang 
2.3) is still copied into WEB-INF/lib. I don't believe this is the correct 
behavior since all dependencies of a JAR packaged in the EAR must also be 
packaged in the EAR. So, all a WAR should have to do is put the transitive 
dependencies in its manifest classpath to inherit them. Basically: in a WAR, 
transitive dependencies of "optional" dependencies should inherit the 
"optional" flag.

I have included a simple test project as an example. Unzip, cd TestProject, and 
mvn install. Look in TestEAR's target dir and you will see that commons-lang is 
included in the EAR. Then look in TestWAR's target dir and you will see that 
commons-lang is also included in both the manifest classpath and the 
WEB-INF/lib dir.

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