maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Osipov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MWAR-351) Optional dependency not being included in the WEB-INF/lib folder
Date Mon, 20 Jul 2015 13:59:04 GMT

    [ https://issues.apache.org/jira/browse/MWAR-351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14633629#comment-14633629
] 

Michael Osipov commented on MWAR-351:
-------------------------------------

Probably the documentation is not clear on this. Why do you want to use optional deps with
WAR files at all?

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

Mime
View raw message