[ 
https://issues.apache.org/jira/browse/MASSEMBLY-894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeff Evans updated MASSEMBLY-894:
---------------------------------
    Description: 
Consider the following dependencies
 * moduleA (compile) depends on moduleB (compile) which depends on libraryX 
(compile)
 * moduleA also depends on libraryX directly, but at a test scope

In this scenario, when defining a dependencySet to capture the runtime 
dependencies of moduleA, I would expect libraryX to be included, but it seems 
it's not.  That's because the test scope we use directly in moduleA is 
overriding the compile scope from moduleB.  I would think that the dependency 
should be included, as its a compile (and thus runtime) dependency of moduleB, 
and therefore of moduleA itself, even though it's not a compile time dependency 
of moduleA directly.

I have attached a sample project to illustrate this behavior.  If you run {{mvn 
package}}, the {{jackson-core}} jars (and others) do not end up in the final 
distribution.  I observed this behavior in version 2.6 of the plugin, but also 
tried with 3.1.0 and saw the same (although the debug output differed somewhat).

  was:
Consider the following dependencies
 * moduleA (compile) depends on moduleB (compile) which depends on libraryX 
(compile)
 * moduleA also depends on libraryX directly, but at a test scope

In this scenario, when defining a dependencySet to capture the runtime 
dependencies of moduleA, I would expect libraryX to be included, but it seems 
it's not.  That's because the test scope we use directly in moduleA is 
overriding the compile scope from moduleB.  I would think that the dependency 
should be included, as its a compile (and thus runtime) dependency of moduleB, 
and therefore of moduleA itself, even though it's not a compile time dependency 
of moduleA directly.

I have attached a sample project to illustrate this behavior.  If you run {{mvn 
package}}, the {{jackson-core}} jars (and others) do not end up in the final 
distribution.


> Local artifactScope overriding results in compile transitive dependencies 
> being omitted
> ---------------------------------------------------------------------------------------
>
>                 Key: MASSEMBLY-894
>                 URL: https://issues.apache.org/jira/browse/MASSEMBLY-894
>             Project: Maven Assembly Plugin
>          Issue Type: Bug
>          Components: dependencySet, filtering
>    Affects Versions: 3.1.0
>            Reporter: Jeff Evans
>            Priority: Minor
>         Attachments: maven-assembly-plugin-issue.zip
>
>
> Consider the following dependencies
>  * moduleA (compile) depends on moduleB (compile) which depends on libraryX 
> (compile)
>  * moduleA also depends on libraryX directly, but at a test scope
> In this scenario, when defining a dependencySet to capture the runtime 
> dependencies of moduleA, I would expect libraryX to be included, but it seems 
> it's not.  That's because the test scope we use directly in moduleA is 
> overriding the compile scope from moduleB.  I would think that the dependency 
> should be included, as its a compile (and thus runtime) dependency of 
> moduleB, and therefore of moduleA itself, even though it's not a compile time 
> dependency of moduleA directly.
> I have attached a sample project to illustrate this behavior.  If you run 
> {{mvn package}}, the {{jackson-core}} jars (and others) do not end up in the 
> final distribution.  I observed this behavior in version 2.6 of the plugin, 
> but also tried with 3.1.0 and saw the same (although the debug output 
> differed somewhat).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to