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

Kristian Rosenvold closed MASSEMBLY-582.
----------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.5.1
         Assignee: Kristian Rosenvold

This issue has been fixed for 2.5.1

> Plugin omits transitive runtime dependencies where artifact is present with 
> test-scope in current project
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: MASSEMBLY-582
>                 URL: https://jira.codehaus.org/browse/MASSEMBLY-582
>             Project: Maven Assembly Plugin
>          Issue Type: Bug
>    Affects Versions: 2.2.1
>         Environment: Linux, Sun 64-bit JDK 1.6.24
>            Reporter: Michael
>            Assignee: Kristian Rosenvold
>             Fix For: 2.5.1
>
>         Attachments: map-jira-1.zip
>
>
> Let's say I have Project1, which has a runtime dependency on an artifact, 
> e.g. Log4j, and Project2 which is defined to have a runtime dependency on 
> Project1. Project2 defines a dependency on Log4j with test-scope. 
> {noformat}
>   P1 --runtime--> P2 --runtime--> Log4j
>   |
>  test
>   |
>   V
>  Log4j
> {noformat}
> If I define a descriptor in Project2 to include runtime dependencies, the 
> Log4j artifact is not included in the resulting ZIP unless it is removed from 
> Project2's dependencies first. 
> This can be replicated through the use of the attached map-jira-1.zip files. 
> 1) Unzip to the filesystem
> 2) Execute mvn package from the maven-assembly-jira1 directory
> 3) Inspect the contents of the ZIP in project2/target (on *nix: unzip -l 
> project2/target/*.zip). Note the absence of Log4j.
> 4) Edit project2/pom.xml to comment-out the dependency on Log4j. 
> 5) Execute mvn package from the maven-assembly-jira1 directory
> 6) Inspect the contents of the ZIP in project2/target. Note the inclusion of 
> Log4j.
> This may not be entirely surprising to this plugin's developers. This is a 
> specific issue for us since several projects define APIs and separate 
> implementations. We depend on the API at compile-time and for testing use 
> some implementation thereof. For example, we depend on SLF4j API and leave 
> definition of the runtime logging implementation to some runtime, 
> base-project (in this example, Project1). For testing purposes we need to 
> define an SLF4j implementation, which just so happens (fancy that) to be the 
> one we use in production. Our resulting deployable is created without the 
> correct dependency set. 
> I would have expected to receive all the runtime, transitive dependencies of 
> my dependencies whether or not I declare a test dependency on those 
> artifacts. 



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to