[
http://jira.codehaus.org/browse/MNG-4797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benjamin Bentmann updated MNG-4797:
-----------------------------------
Attachment: MNG-4797.zip
I'm not able to reproduce the issue you describe. Attached is a
complete/buildable project which shows that the dependency management (from a
parent, but that shouldn't matter), takes precedence over transitive
dependencies:
{noformat}
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.5.0_21
Java home: D:\java\jdk-1.5\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "x86" Family: "windows"
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'dependency'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - test:test:jar:0.1
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] test:test:jar:0.1
[INFO] \- org.apache.maven:maven-model:jar:2.0.6:compile
[INFO] \- org.codehaus.plexus:plexus-utils:jar:2.0.5:compile (version
managed from 1.4.1)
{noformat}
So unless you can provide a complete example that allows to reproduce the issue
and analyze it, we can't help.
> Dependency Management precedence issue over Dependency Mediation for
> Transitive Dependencies
> ---------------------------------------------------------------------------------------------
>
> Key: MNG-4797
> URL: http://jira.codehaus.org/browse/MNG-4797
> Project: Maven 2 & 3
> Issue Type: Bug
> Components: Dependencies
> Affects Versions: 2.2.1
> Reporter: Ramiah Balasubramanian
> Attachments: Dependency-Declaration-of-Child-Pom.xml,
> Dependency-Management-Extract-of-Parent-Pom.xml, MNG-4797.zip,
> spring-actionscript-superpom-1.0.pom
>
>
> My usecase mirrors the scenario described through an example in
> [http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management],
> in particular,
> {quote}
> b is defined in B's parent's dependency management section and since
> dependency management takes precedence over dependency mediation for
> transitive dependencies, version 1.0 will be selected should it be referenced
> in a or c's pom. b will also have compile scope.
> {quote}
> However, I am unable to see the above behaviour unless I define explicit
> dependency for the transitive dependencies in the child pom.
> My parent pom defines a <dependencyManagement/> section with all the
> dependencies (scope, version) that is necessary for my child project directly
> and indirectly (to override the transitive dependency of a an external
> artifact - (spring-actionscript-core whose parent pom is
> spring-actionscript-superpom-1.0.pom).
> The transitive dependencies of the spring-actionscript-core artifact are
> defined with a different version to the one I have defined within the
> <dependencyManagement/> section of my parent pom.
> According to the precedence rules, the transitive dependencies of the
> spring-actionscript-core artifact should be overridden by the version and
> scope defined in the <dependencyManagement/> section of my parent pom.
> From the maven install execution log, I do not see that as the case. For
> those artifacts I have explicitly defined within the <dependencies/> section
> of the child pom, the transitive dependencies attributes have been overridden
> with those defined in the <dependencyManagement/> section of the parent pom,
> albeit looks like it is through mediation than management.
> Example artifacts are
> com.adobe.flex.framework:framework:swc:3.5.0.12683:runtime (removed - nearer
> found: 4.1.0.16076)
> com.adobe.flex.framework:rpc:swc:3.5.0.12683:runtime (removed - nearer found:
> 4.1.0.16076)
> However, for those that are not explicitly defined, the transitive
> dependencies remain with the version defined within the external artifact's
> pom. Dependency mediation seems to rule.
> com.adobe.flex.framework:utilities:swc:3.5.0.12683:runtime (setting scope to:
> compile)
> com.adobe.flex.framework:framework:rb.swc:3.5.0.12683:runtime (setting scope
> to: compile)
> The debug output of maven install execution is as below:
> *[DEBUG]*
> *org.springextensions.actionscript:spring-actionscript-core:swc:1.0:compile
> (selected for compile)*
> [DEBUG] com.adobe.flex.framework:flex:swc:3.5.0.12683:runtime (setting
> scope to: compile)
> [DEBUG] com.adobe.flex.framework:framework:swc:3.5.0.12683:runtime
> (removed - nearer found: 4.1.0.16076)
> [DEBUG]
> com.adobe.flex.framework:framework:zip:configs:4.1.0.16076:compile (removed -
> nearer found: 3.5.0.12683)
> [DEBUG]
> com.adobe.flex.framework:framework:zip:configs:3.5.0.12683:compile (selected
> for compile)
> [DEBUG] com.adobe.flex.framework:rpc:swc:3.5.0.12683:runtime (removed -
> nearer found: 4.1.0.16076)
> [DEBUG] com.adobe.flex.framework:utilities:swc:3.5.0.12683:runtime
> (setting scope to: compile)
> [DEBUG] com.adobe.flex.framework:playerglobal:swc:10:3.5.0.12683:runtime
> (selected for runtime)
> [DEBUG] com.adobe.flex.framework:framework:rb.swc:3.5.0.12683:runtime
> (setting scope to: compile)
> [DEBUG] com.adobe.flex.framework:rpc:rb.swc:3.5.0.12683:runtime (setting
> scope to: compile)
> I have attached the following extracts for your perusal:
> i) Dependency Management section of the parent pom
> ii) Dependency declarations of the child pom
> iii) Pom of an external artifact that the child pom defines dependency
> If my understanding of the intended behaviour is flawed, apologies in
> advance, much appreciate if you could provide me with an explanation to help
> understand better.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira