[ https://issues.apache.org/jira/browse/MNG-6058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17497728#comment-17497728 ]
Elliotte Rusty Harold commented on MNG-6058: -------------------------------------------- There are two things going on here that might be independent questions: 1. Which version of b should Maven add to the compile time classpath? 2. Which scope should it have? One could perhaps make a case that 1.0 is the correct version to select, but there's no world I can imagine in which dropping the dependency from the compile time classpath makes any sense at all. > 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 > Priority: Critical > 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 (v8.20.1#820001)