From issues-return-110449-apmail-maven-issues-archive=maven.apache.org@maven.apache.org Thu Mar 3 12:51:20 2016 Return-Path: X-Original-To: apmail-maven-issues-archive@minotaur.apache.org Delivered-To: apmail-maven-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5AF5818B5D for ; Thu, 3 Mar 2016 12:51:20 +0000 (UTC) Received: (qmail 54137 invoked by uid 500); 3 Mar 2016 12:51:18 -0000 Delivered-To: apmail-maven-issues-archive@maven.apache.org Received: (qmail 54060 invoked by uid 500); 3 Mar 2016 12:51:18 -0000 Mailing-List: contact issues-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list issues@maven.apache.org Received: (qmail 53636 invoked by uid 99); 3 Mar 2016 12:51:18 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Mar 2016 12:51:18 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 3B7D62C1F5D for ; Thu, 3 Mar 2016 12:51:18 +0000 (UTC) Date: Thu, 3 Mar 2016 12:51:18 +0000 (UTC) From: "Jostein Gogstad (JIRA)" To: issues@maven.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (MNG-5988) Dependency mediation should prioritize transitive dependencies from compile-scoped artifacts MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Jostein Gogstad created MNG-5988: ------------------------------------ Summary: Dependency mediation should prioritize transitive dependencies from compile-scoped artifacts Key: MNG-5988 URL: https://issues.apache.org/jira/browse/MNG-5988 Project: Maven Issue Type: Bug Components: Dependencies Affects Versions: 3.2.3 Reporter: Jostein Gogstad The [documentation|https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html] states that dependency mediation only supports "nearest definition", regardless of the scope of the parent dependency. If both compile- and test scoped dependencies shares the same transitive dependency. The test-scoped one will win if it has shallower depth. That in turn will lead to runtime exceptions since the transitive dependency is no longer on the classpath. Take the following pom from a typical [Spring Boot|http://projects.spring.io/spring-boot/] application. Since the {{camel-test-spring}} dependency also depends on spring, it wins and Spring is no longer available to the application at runtime. {code:xml} 4.0.0 com.example bugreport jar 1.0.0-SNAPSHOT org.springframework.boot spring-boot-starter-web 1.3.2.RELEASE org.apache.camel camel-test-spring 2.16.2 test {code} {code:xml|title=mvn dependency:tree (with camel-test-spring)} [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ bugreport --- [INFO] com.example:bugreport:jar:1.0.0-SNAPSHOT [INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.3.2.RELEASE:compile [INFO] | +- org.springframework.boot:spring-boot-starter:jar:1.3.2.RELEASE:compile [INFO] | | +- org.springframework.boot:spring-boot:jar:1.3.2.RELEASE:compile [INFO] | | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.3.2.RELEASE:compile [INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:1.3.2.RELEASE:compile [INFO] | | | +- ch.qos.logback:logback-classic:jar:1.1.3:compile [INFO] | | | | \- ch.qos.logback:logback-core:jar:1.1.3:compile [INFO] | | | +- org.slf4j:jcl-over-slf4j:jar:1.7.13:compile [INFO] | | | +- org.slf4j:jul-to-slf4j:jar:1.7.13:compile [INFO] | | | \- org.slf4j:log4j-over-slf4j:jar:1.7.13:compile [INFO] | | \- org.yaml:snakeyaml:jar:1.16:runtime [INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.3.2.RELEASE:compile [INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.0.30:compile [INFO] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.0.30:compile [INFO] | | +- org.apache.tomcat.embed:tomcat-embed-logging-juli:jar:8.0.30:compile [INFO] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.0.30:compile [INFO] | +- org.springframework.boot:spring-boot-starter-validation:jar:1.3.2.RELEASE:compile [INFO] | | \- org.hibernate:hibernate-validator:jar:5.2.2.Final:compile [INFO] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile [INFO] | | +- org.jboss.logging:jboss-logging:jar:3.2.1.Final:compile [INFO] | | \- com.fasterxml:classmate:jar:1.1.0:compile [INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.6.5:compile [INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.0:compile [INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.6.5:compile [INFO] | +- org.springframework:spring-web:jar:4.2.4.RELEASE:compile [INFO] | \- org.springframework:spring-webmvc:jar:4.2.4.RELEASE:compile [INFO] \- org.apache.camel:camel-test-spring:jar:2.16.2:test [INFO] +- org.apache.camel:camel-test:jar:2.16.2:test [INFO] | +- org.apache.camel:camel-core:jar:2.16.2:test [INFO] | | \- org.slf4j:slf4j-api:jar:1.6.6:compile [INFO] | \- junit:junit:jar:4.11:test [INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test [INFO] +- org.apache.camel:camel-spring:jar:2.16.2:test [INFO] +- org.springframework:spring-test:jar:4.1.9.RELEASE:test [INFO] +- org.springframework:spring-context:jar:4.1.9.RELEASE:compile [INFO] +- org.springframework:spring-beans:jar:4.1.9.RELEASE:compile [INFO] +- org.springframework:spring-expression:jar:4.1.9.RELEASE:compile [INFO] +- org.springframework:spring-aop:jar:4.1.9.RELEASE:compile [INFO] | \- aopalliance:aopalliance:jar:1.0:compile [INFO] +- org.springframework:spring-tx:jar:4.1.9.RELEASE:test [INFO] +- org.springframework:spring-core:jar:4.1.9.RELEASE:compile [INFO] | \- commons-logging:commons-logging:jar:1.2:compile [INFO] +- com.sun.xml.bind:jaxb-core:jar:2.2.11:test [INFO] \- com.sun.xml.bind:jaxb-impl:jar:2.2.11:test {code} {code:xml|title=mvn dependency:tree (without camel-test-spring)} [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ bugreport --- [INFO] com.example:bugreport:jar:1.0.0-SNAPSHOT [INFO] \- org.springframework.boot:spring-boot-starter-web:jar:1.3.2.RELEASE:compile [INFO] +- org.springframework.boot:spring-boot-starter:jar:1.3.2.RELEASE:compile [INFO] | +- org.springframework.boot:spring-boot:jar:1.3.2.RELEASE:compile [INFO] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.3.2.RELEASE:compile [INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.3.2.RELEASE:compile [INFO] | | +- ch.qos.logback:logback-classic:jar:1.1.3:compile [INFO] | | | +- ch.qos.logback:logback-core:jar:1.1.3:compile [INFO] | | | \- org.slf4j:slf4j-api:jar:1.7.7:compile [INFO] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.13:compile [INFO] | | +- org.slf4j:jul-to-slf4j:jar:1.7.13:compile [INFO] | | \- org.slf4j:log4j-over-slf4j:jar:1.7.13:compile [INFO] | +- org.springframework:spring-core:jar:4.2.4.RELEASE:compile [INFO] | \- org.yaml:snakeyaml:jar:1.16:runtime [INFO] +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.3.2.RELEASE:compile [INFO] | +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.0.30:compile [INFO] | +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.0.30:compile [INFO] | +- org.apache.tomcat.embed:tomcat-embed-logging-juli:jar:8.0.30:compile [INFO] | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.0.30:compile [INFO] +- org.springframework.boot:spring-boot-starter-validation:jar:1.3.2.RELEASE:compile [INFO] | \- org.hibernate:hibernate-validator:jar:5.2.2.Final:compile [INFO] | +- javax.validation:validation-api:jar:1.1.0.Final:compile [INFO] | +- org.jboss.logging:jboss-logging:jar:3.2.1.Final:compile [INFO] | \- com.fasterxml:classmate:jar:1.1.0:compile [INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.6.5:compile [INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.0:compile [INFO] | \- com.fasterxml.jackson.core:jackson-core:jar:2.6.5:compile [INFO] +- org.springframework:spring-web:jar:4.2.4.RELEASE:compile [INFO] | +- org.springframework:spring-aop:jar:4.2.4.RELEASE:compile [INFO] | | \- aopalliance:aopalliance:jar:1.0:compile [INFO] | +- org.springframework:spring-beans:jar:4.2.4.RELEASE:compile [INFO] | \- org.springframework:spring-context:jar:4.2.4.RELEASE:compile [INFO] \- org.springframework:spring-webmvc:jar:4.2.4.RELEASE:compile [INFO] \- org.springframework:spring-expression:jar:4.2.4.RELEASE:compile {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)