[ https://issues.apache.org/jira/browse/MWAR-351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hockchai Lim updated MWAR-351: ------------------------------ Summary: Optional dependency not being included in the WEB-INF/lib folder (was: Optional dependency to being added to the WEB-INF/lib folder) > Optional dependency not being included in the WEB-INF/lib folder > ---------------------------------------------------------------- > > Key: MWAR-351 > URL: https://issues.apache.org/jira/browse/MWAR-351 > Project: Maven WAR Plugin > Issue Type: Bug > Affects Versions: 2.2 > Reporter: Hockchai Lim > Priority: Minor > > I've a maven web module that has several dependencies that are declared with > <optional>true</optional> in pom.xml. For example: > <dependency> > <groupId>log4j</groupId> > <artifactId>log4j</artifactId> > <optional>true</optional> > </dependency> > When performing packaging of this project, Maven WAR Plugin is not including > those optional dependencies to the WEB-INF/lib folder, which I think is > incorrect. According to > https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html, > optional dependency should work like transitive dependency for this web > module. Optional dependency should only be ignored on projects/modules that > reference this web modle. > Below is the relevant sections from > https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html > link: > How do optional dependencies work? > Project-A -> Project-B > The diagram above says that Project-A depends on Project-B. When A declares B > as an optional dependency in its POM, this relationship remains unchanged. > Its just like a normal build where Project-B will be added in its classpath. > Project-X -> Project-A > But when another project(Project-X) declares Project-A as a dependency in its > POM, the optional dependency takes effect. You'll notice that Project-B is > not included in the classpath of Project-X; you will need to declare it > directly in your POM in order for B to be included in X's classpath. -- This message was sent by Atlassian JIRA (v6.3.4#6332)