[Commented] (MASSEMBLY-675) Maven Assembly packaging wildcard-excluded dependencies

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[Commented] (MASSEMBLY-675) Maven Assembly packaging wildcard-excluded dependencies

JIRA jira@apache.org

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

Rodrigo Carvalho Silva commented on MASSEMBLY-675:
--------------------------------------------------

I lost one day of work trying to figure out why my package was being created with undesired dependencies...

Is this issue difficult to be fixed by someone with no experience with the the plugin's codebase (like me)?

> Maven Assembly packaging wildcard-excluded dependencies
> -------------------------------------------------------
>
>                 Key: MASSEMBLY-675
>                 URL: https://issues.apache.org/jira/browse/MASSEMBLY-675
>             Project: Maven Assembly Plugin
>          Issue Type: Bug
>    Affects Versions: 2.4
>         Environment: Apache Maven 3.1.1
> Java version: 1.7.0_45, vendor: Oracle Corporation
> OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"
>            Reporter: Frank Wilson
>            Assignee: John Casey
>         Attachments: massembly-675.zip
>
>
> Version 2.4 ignores wildcard exclusions in POM dependencies
> Example (perhaps contrived - but easy to setup):
> When a pom declares a dependency such as closure-compiler and for some reason we do not want to pull its dependencies in we could declare this in our POM, without having to know what those dependencies are:
>   <dependencies>
>     <dependency>
>       <groupId>com.google.javascript</groupId>
>       <artifactId>closure-compiler</artifactId>
>       <version>v20131014</version>
>       <exclusions>
>         <exclusion>
>           <artifactId>*</artifactId>
>           <groupId>*</groupId>
>         </exclusion>
>       </exclusions>
>     </dependency>
>   </dependencies>
> This is a valid use of the exclusion feature as per [Maven Confluence|http://docs.codehaus.org/display/MAVENUSER/wildcard+exclusion+for+artifact+dependencies], [MNG-3832|https://jira.codehaus.org/browse/MNG-3832]. False warning about wildcards were [fixed|https://git-wip-us.apache.org/repos/asf?p=maven.git;a=commitdiff;h=65c135d5] in Git about 10 days ago  
> Here is the assembly descriptor:
> <assembly>
>   <id>bin</id>
>   <formats>
>     <format>dir</format>
>   </formats>
>   <includeBaseDirectory>false</includeBaseDirectory>
>   <dependencySets>
>     <dependencySet/>
>   </dependencySets>
> </assembly>
> We expect to only find the current project artifact and the closure-compiler JAR in our directory assembly. However the assembly plugin ignores our POM directive and includes the closure-compilers dependencies anyway!
> Steps to reproduce are:
> $ unzip massembly-675.zip
> $ cd massembly-675
> $ mvn clean install
> $ ls target/massembly-675-1-bin
> args4j-2.0.16.jar              json-20090211.jar              protobuf-java-2.4.1.jar
> closure-compiler-v20131014.jar jsr305-1.3.9.jar
> guava-15.0.jar                 massembly-675-1.jar
> *Notice that the excluded jars are included in the assembly*
> I would expect to only see the following JARs.
> * closure-compiler-v20131014.jar
> * massembly-675-1.jar



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)