[ http://jira.codehaus.org/browse/MNG-2794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_87178 ]
nicolas de loof commented on MNG-2794: -------------------------------------- Maven 2.0.4 uses the "nearest" strategy to solve dependency conflicts, so the issue " project depends on A -> D-v2 project depends on B -> D-v3 " has no determinist solution about what version of D will be transitively used. Having this work in maven 2.0.4 in some circonstances is only beeing lucky. If your project depends on classes from D v3, you should declare it as a dependency to solve the conflict. there is some plan to enhance the resolution strategy with (http://docs.codehaus.org/display/MAVENUSER/Improving+Maven2+Dependency+Resolution) but AFAIK the target is maven 2.1. > Transitive dependency resolution differs between 2.0.4 and (future) 2.0.5 > ------------------------------------------------------------------------- > > Key: MNG-2794 > URL: http://jira.codehaus.org/browse/MNG-2794 > Project: Maven 2 > Issue Type: Bug > Components: Dependencies > Affects Versions: 2.0.5 > Reporter: Fabrice BELLINGARD > Fix For: 2.0.5 > > Attachments: Test-DependencyResolution.zip > > > Say you have a project that has 3 dependecies A, B and C, amongst which 2 of > them have a dependency D but with a different version: > A -> D v2.1 > B -> D v3 > C (has no transitive dependency to D) > In the project, you call a class that exists in D v3 but not in D v2.1. > -> If you launch "mvn clean compile" with M2.0.4, the build is successful, > but not with M2.0.5. > And the most surprising: if you remove dependency C, then both builds break... > I attached a test project that reproduces the bug. -- 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