[ http://jira.codehaus.org/browse/MNG-2192?page=comments#action_66016 ] 

Carlos Sanchez commented on MNG-2192:
-------------------------------------

I don't understand, you're saying that you have 3.1 in the parent and then 2.1 
in the child and 2.1 is selected? That's the expected behaviour

> Transitive dependency overrides version specified in POM
> --------------------------------------------------------
>
>          Key: MNG-2192
>          URL: http://jira.codehaus.org/browse/MNG-2192
>      Project: Maven 2
>         Type: Bug

>   Components: Dependencies
>     Versions: 2.0.2, 2.0.3
>     Reporter: Ray Ward

>
>
> I'm seeing this in both 2.0.2 and 2.0.3, but not in 1.0.2.  I specify a 
> version for a dependency in the parent pom.xml.  As the build goes on, one or 
> more dependencies will be processed in the modules that have earlier 
> versions, and those earlier versions override the version I specified in 
> pom.xml. 
>  
> For example:
>                 <dependency>
>                         <groupId>commons-collections</groupId>
>                         <artifactId>commons-collections</artifactId>
>                         <version> 3.1</version>
>                 </dependency>
>  
> Then from the log:
> ...
> [DEBUG]   struts:struts:jar:1.2.4:compile (selected for compile)
> [DEBUG]     oro:oro:jar:2.0.7:compile (selected for compile)
> [DEBUG]     commons-logging:commons-logging:jar:1.0.4:compile (selected for 
> compile) 
> [DEBUG]     commons-fileupload:commons-fileupload:jar:1.0:compile (selected 
> for compile)
> [DEBUG]     commons-collections:commons-collections:jar:2.1:compile (selected 
> for compile)
> [DEBUG]     commons-beanutils:commons-beanutils:jar: 1.6.1:compile (selected 
> for compile)
> [DEBUG]       commons-logging:commons-logging:jar:1.0:compile (removed - 
> nearer found: 1.0.4)
> [DEBUG]       commons-collections:commons-collections:jar:2.0:compile 
> (removed - nearer found: 2.1)
> [DEBUG]     commons-digester:commons-digester:jar:1.5:compile (selected for 
> compile)
> [DEBUG]       commons-beanutils:commons-beanutils:jar:1.6:compile (removed - 
> nearer found: 1.6.1)
> ...
>  
> And what is in the WAR file is:
> [DEBUG] adding entry WEB-INF/lib/commons-collections-2.1.jar
> (verified this from the .war file)
>  
> This is contrary to the documentation on the web site:
> http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
> Which says:  
> Dependency mediation - this determines what version of a dependency will be 
> used when multiple versions of an artifact are encountered. Currently, Maven 
> 2.0 only supports using the "nearest definition" - so you can always 
> guarantee a version by declaring it explicitly in your project's POM. 
> I take this to mean that the POM is based on the parent pom.xml in a 
> multiproject build, and the modules should inherit the version setting from 
> the parent.  So I haven't tried to specify the version again in a child 
> pom.xml.
> I came across this while converting a project from M1 to M2.  The M1 WAR file 
> contains version 3.1, as expected.
> Hope to include a simple pom.xml to demo this later -- schedule crunch at the 
> moment precludes doing it now.

-- 
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

Reply via email to