[ 
https://jira.codehaus.org/browse/MNG-5722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=356011#comment-356011
 ] 

Henning Schmiedehausen commented on MNG-5722:
---------------------------------------------

This seems to boil down that with projB present, the dependency for httpclient 
is reduced to 

[INFO] |     \- org.apache.httpcomponents:httpclient:jar:4.3.6:compile
[INFO] |        +- org.apache.httpcomponents:httpcore:jar:4.3.3:compile
[INFO] |        \- commons-codec:commons-codec:jar:1.6:compile

which then in turn is applied to the dependency loaded from projC-component2 

This actually *IS* order dependent, moving the projB dependency at the end of 
the dependency list for projD will make the build fail, too.

> maven splills exclude rules from one dependency to another
> ----------------------------------------------------------
>
>                 Key: MNG-5722
>                 URL: https://jira.codehaus.org/browse/MNG-5722
>             Project: Maven
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 3.2.3
>         Environment: mvn --version
> Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 
> 2014-08-11T13:58:10-07:00)
> Maven home: /home/hschmiedehausen/.apache-maven
> Java version: 1.7.0_67, vendor: Oracle Corporation
> Java home: /usr/lib/jvm/java-1.7.0-sun-1.7.0.67/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "3.16.6-200.fc20.x86_64", arch: "amd64", family: 
> "unix"
>            Reporter: Henning Schmiedehausen
>         Attachments: exclude-dependency-bug.tar.gz, 
> exclude-dependency-bug.tar.gz
>
>
> unpack the attached archive (note HAUS-2405 for possible problems here, the 
> file might be double-compressed). It contains four projects: projA - projD
> for each project run "mvn clean install". All builds succeed
> However, the resulting project D includes
> projB -> jcl-over-slf4j
> projC-component1 -> projC-component2 -> httpclient, which includes commons 
> logging
> So the resulting project *should* fail with duplicate classes. However, the 
> build succeeds. 
> To make the build fail:
> - remove the dependency on projB from projD and rebuild.
> INFO] --- maven-duplicate-finder-plugin:1.0.9:check (default) @ projD ---
> [INFO] Checking compile classpath
> [WARNING] Found duplicate and different classes in 
> [commons-logging:commons-logging:1.1.3,org.slf4j:jcl-over-slf4j:1.7.7] :
> [WARNING]   org.apache.commons.logging.Log
> [WARNING]   org.apache.commons.logging.LogConfigurationException
> [WARNING]   org.apache.commons.logging.LogFactory
> [WARNING]   org.apache.commons.logging.impl.NoOpLog
> [WARNING]   org.apache.commons.logging.impl.SimpleLog
> the separate dependency trees:
> projB:
> [INFO] group:projB:jar:1-SNAPSHOT
> [INFO] \- group:projA:jar:1-SNAPSHOT:compile
> [INFO]    +- commons-lang:commons-lang:jar:2.6:compile
> [INFO]    \- org.apache.httpcomponents:httpclient:jar:4.3.6:compile
> [INFO]       +- org.apache.httpcomponents:httpcore:jar:4.3.3:compile
> [INFO]       \- commons-codec:commons-codec:jar:1.6:compile
> projC-component1
> [INFO] group:projC-component1:jar:1-SNAPSHOT
> [INFO] \- group:projC-component2:jar:1-SNAPSHOT:compile
> [INFO]    \- org.apache.httpcomponents:httpclient:jar:4.3.6:compile
> [INFO]       +- org.apache.httpcomponents:httpcore:jar:4.3.3:compile
> [INFO]       +- commons-logging:commons-logging:jar:1.1.3:compile
> [INFO]       \- commons-codec:commons-codec:jar:1.6:compile
> projC-component1 *should* include commons-logging which in turn should clash 
> with jcl-over-slf4j in projD (proojD depends on projB, projC-component1 and 
> jcl-over-slf4j). However, the presence of projB excludes commons-logging from 
> the dependencies in projC-component1.



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

Reply via email to