You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Keith Naas (JIRA)" <ji...@codehaus.org> on 2007/12/14 17:17:57 UTC

[jira] Updated: (MWAR-111) Transitive dependencies of optional dependencies are included in WEB-INF/lib

     [ http://jira.codehaus.org/browse/MWAR-111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Naas updated MWAR-111:
----------------------------

    Attachment: MWAR-111.patch

Here is a patch that does a full search of the project dependencies instead of just one level deep.  

This is incredibly important for our company as we deploy ears, exclusively and if it scans through the entire dependency list to see if its optional, we can simply have one project control all of our common optional dependencies.

> 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: AbstractWarMojo.java, MWAR-111.patch, 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