[ https://issues.apache.org/jira/browse/MNG-6058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Schulte updated MNG-6058: ----------------------------------- Description: The following graph {code} POM |->a 2.0 compile |-->b 2.0 compile |->b 1.0 test {code} will be mediated to {code} POM |->a 2.0 compile |->b 1.0 test {code} The test dependency on b will make the transitive application dependency on b disappear. Maven should understand that the application dependency on b in version 2.0 is part of the application classpath and that the test dependency on b in version 1.0 is part of the test classpath only (overriding the application classpath). If someone adds a dependency on a project like that, the test dependency will disappear because the test scope is not transitive so that a "consuming" project gets a different application classpath than the project itself. was: The following graph {code} POM |->a 2.0 compile |-->b 2.0 compile |->b 1.0 test {code} will be mediated to {code} POM |->a 2.0 compile |->b 1.0 test {code} The test dependency on b will make the transitive application dependency on b disappear. Maven should understand that the application dependency on b in version 2.0 is part of the application classpath and that the test dependency on b in version 1.0 is part of the test classpath only (overriding the application classpath). If someone adds a dependency on a project like that, the test dependency will disappear because the test scope is not transitive. So that a "consuming" project will see a different version of 'b' as > Test dependencies should override application dependencies only during > testing. > ------------------------------------------------------------------------------- > > Key: MNG-6058 > URL: https://issues.apache.org/jira/browse/MNG-6058 > Project: Maven > Issue Type: Bug > Reporter: Christian Schulte > Assignee: Christian Schulte > Attachments: MNG-6058.zip > > > The following graph > {code} > POM > |->a 2.0 compile > |-->b 2.0 compile > |->b 1.0 test > {code} > will be mediated to > {code} > POM > |->a 2.0 compile > |->b 1.0 test > {code} > The test dependency on b will make the transitive application dependency on b > disappear. Maven should understand that the application dependency on b in > version 2.0 is part of the application classpath and that the test > dependency on b in version 1.0 is part of the test classpath only (overriding > the application classpath). If someone adds a dependency on a project like > that, the test dependency will disappear because the test scope is not > transitive so that a "consuming" project gets a different application > classpath than the project itself. -- This message was sent by Atlassian JIRA (v6.3.4#6332)