[ 
https://jira.codehaus.org/browse/MNG-5138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=274260#comment-274260
 ] 

Benjamin Bentmann commented on MNG-5138:
----------------------------------------

https://issues.sonatype.org/browse/AETHER-94

> Dependency conflicts are extremely opaque
> -----------------------------------------
>
>                 Key: MNG-5138
>                 URL: https://jira.codehaus.org/browse/MNG-5138
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 3.0.3
>            Reporter: Robert Watkins
>         Attachments: maven_dep_conflict.tgz
>
>
> When you get conflicts between versions of dependencies - mostly transitive, 
> and mostly when using ranges - it is extremely hard to see where the 
> conflicts are coming from.
> With Maven 2.2, you could use the -X argument to get extra information, and 
> it was possible to see where versions were detected and where conflicts were 
> coming from. This is no longer the case with Maven 3, probably due to the use 
> of Aether.
> In the attached tar ball, there are three projects ('first', 'second' and 
> 'third'), each generated using the maven:archetype plugin.
> 'first' depends on commons-lang:commons-lang:[2.5]
> 'second' depends on commons-lang:commons-lang:[2.6]
> 'third' depends on both 'first' and 'second'.
> When you do 'mvn clean install' on 'third', you get the following output:
> $ mvn clean install
> [INFO] Scanning for projects...
> [INFO]                                                                        
>  
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Building third 1.0-SNAPSHOT
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 0.825s
> [INFO] Finished at: Tue Jul 26 21:59:46 EST 2011
> [INFO] Final Memory: 3M/81M
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] Failed to execute goal on project third: Could not resolve 
> dependencies for project net.twasink:third:jar:1.0-SNAPSHOT: Failed to 
> collect dependencies for [net.twasink:first:jar:1.0-SNAPSHOT (compile), 
> net.twasink:second:jar:1.0-SNAPSHOT (compile), junit:junit:jar:3.8.1 (test)]: 
> Could not resolve version conflict for [commons-lang:commons-lang::jar] with 
> requested versions [2.6,2.6], [2.5,2.5] -> [Help 1]
> [ERROR] 
> [ERROR] To see the full stack trace of the errors, re-run Maven with the -e 
> switch.
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please 
> read the following articles:
> [ERROR] [Help 1] 
> http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
> Using -X and -e gives you stack traces but no more meaningful information.
> Ideally, the normal output should indicate the transitive paths - e.g. that 
> commons-lang:2.5 is being brought in by 'first' and 2.6 by 'second'. Failing 
> that, the debug output could log the transitive paths, as Maven 2.2 did. 
> While this is an obviously simple and contrived example, real-world projects 
> using ranges can get a lot more complex.
> Alternatively, if there is a way from the Maven CLI to switch on logging for 
> Aether, that might help as well.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to