You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (JIRA)" <ji...@codehaus.org> on 2015/01/21 20:27:18 UTC
[jira] (MNG-5145) Optional compile dependencies being resolved by
test dependencies
[ https://jira.codehaus.org/browse/MNG-5145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Scholte closed MNG-5145.
-------------------------------
Resolution: Fixed
Fix Version/s: 3.1.0
Assignee: Robert Scholte (was: Jason van Zyl)
I've tested it with 3.1.0 and newer. Now it is correct. I think this was fixed thanks to MNG-5354.
> Optional compile dependencies being resolved by test dependencies
> -----------------------------------------------------------------
>
> Key: MNG-5145
> URL: https://jira.codehaus.org/browse/MNG-5145
> Project: Maven
> Issue Type: Bug
> Components: Dependencies
> Affects Versions: 3.0.3
> Reporter: Robert Watkins
> Assignee: Robert Scholte
> Priority: Critical
> Fix For: 3.1.0
>
> Attachments: pom.xml
>
>
> Optional compile-time dependencies are being resolved (in WAR projects, at least) into the packaged artifact.
> There has been a regression since Maven 2.2.1 in regards to resolving optional dependencies.
> In the attached pom (which builds a WAR), there are two dependencies:
> * org.springframework:spring-core:2.5.6 - at compile scope
> * org.dbunit:dbunit:2.3.0 - at test scope.
> The dependency tree looks like this:
> {noformat}
> net.twasink:webapp:war:1.0
> +- org.springframework:spring-core:jar:2.5.6:compile
> | \- commons-logging:commons-logging:jar:1.1.1:compile
> \- org.dbunit:dbunit:jar:2.3.0:test
> +- junit:junit:jar:3.8.2:test
> +- junit-addons:junit-addons:jar:1.4:test
> | +- xerces:xercesImpl:jar:2.6.2:test
> | \- xerces:xmlParserAPIs:jar:2.6.2:test
> +- org.apache.poi:poi:jar:3.1-FINAL:test
> | \- log4j:log4j:jar:1.2.13:test
> +- commons-collections:commons-collections:jar:3.1:test
> +- commons-lang:commons-lang:jar:2.1:test
> +- org.slf4j:slf4j-api:jar:1.4.3:test
> \- org.slf4j:slf4j-nop:jar:1.4.3:test
> {noformat}
> Note that {{log4j:log4j:1.2.13}} is a {{test}} dependency. However, when you do {{'mvn package'}}, and inspect the resulting WAR file, it includes {{log4j}}!
> The problem appears to be that {{commons-logging}} (a compile dependency brought in by {{spring-core}}) declares {{log4j}} as an _optional_ {{compile}} dependency. This is clashing with the test dependency brought in transitively by {{dbunit}}.
> To make it worse, this is still brought in if you add an explicit exclusion of {{log4j}} to {{spring-core}}.
> Maven 2.2.1 did not bring in the {{log4j}} JAR - this is a regression under Maven 3.0.3
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)