[ http://jira.codehaus.org/browse/MWAR-125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Adrian updated MWAR-125: ------------------------ Attachment: test.zip Here's a test case : test-project <parent project> test-ear <ear file including test-web web module, test-service jar utility and test-service jars dependencies> test-service <utility jar bundled in ear file (not in WEB-INF/lib> test-web <the interesting module> test-web declares a dependency towards test-service with scope=compile and optional=true. test-web declares a dependency towards commons-logging with scope=compile and optional=false. test-web declares a dependency towards spring with scope=compile and optional=false. When executing 'mvn package', we see that spring jar is bundled in WEB-INF/lib. Since it's include from a transitive optional dependency (test-service) we should expect it *not* to be bundled in WEB-INF/lib. > war manifest generation : optional=true not transitive > ------------------------------------------------------ > > Key: MWAR-125 > URL: http://jira.codehaus.org/browse/MWAR-125 > Project: Maven 2.x War Plugin > Issue Type: Bug > Reporter: Adrian > Attachments: test.zip > > > From > http://maven.apache.org/plugins/maven-war-plugin/examples/war-manifest-guide.html, > war plugins distinguished the jars going to ear file and those going to > WEB-INF/lib. > For a jar that's deployed on the ear and not in WEB-INF/ilb, you jus have to > put scope=compile and optional=true: > <dependency> > <groupId>org.foo</groupId> > <artifactId>bar-jar1</artifactId> > <version>${pom.version}</version> > <optional>true</optional> > <!-- goes in manifest classpath, but not included in WEB-INF/lib --> > </dependency> > The problem is transitive dependencies of bar-jar1 are put in WEB-INF/lib. > For instance : > if artA declares > <dependency> > <artifactId>artB</artifactId> > <optional>true</optional> > </dependency> > and artB declares : > <dependency> > <artifactId>artC</artifactId> > <optional>false</optional> > </dependency> > then artC is transitively included in artA dependencies but with > optional=false. > IMHO it should be included with optional=true since artB is optional. > I'll attach a test case ASAP. -- 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