[ https://jira.codehaus.org/browse/MNG-3092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=322952#comment-322952 ]
Sergei Ivanov commented on MNG-3092: ------------------------------------ Our experience was that Maven2 resolved dependencies in a rather unpredictable way when faced a combination of version ranges, transitive dependencies with their own version ranges and dependency management. As far as I remember, the whole idea of Aether was to provide a more correct and deterministic dependency resolution for Maven3. This is not an easy undertaking, and OSGi folks (who are using version ranges a lot) faced it as well: I vaguely remember reading an article that claimed that dependency resolution in OSGi is an NP-complete task. That is, you have to trade speed for correctness. We have never had problems with dependency resolution in Maven3, and I am not finding it much slower than Maven2, although I must admit I haven't run Maven2 for ages. Most of our in-house maven plugins require features from Maven3, thus we cannot go back to Maven2 even if we wanted to. Another thing to mention is that we are not using Eclipse in the team. All our team members moved from Eclipse to IntelliJ IDEA simply because Maven support in Eclipse was rubbish, while everything worked out of the box in IDEA. Based on that prior experience, I still do not trust M2E, and I won't be surprised to learn that it may be introducing more problems in addition to the one we are discussing here. > Version ranges with non-snapshot bounds can contain snapshot versions > --------------------------------------------------------------------- > > Key: MNG-3092 > URL: https://jira.codehaus.org/browse/MNG-3092 > Project: Maven 2 & 3 > Issue Type: Bug > Components: Dependencies > Reporter: Mark Hobson > Assignee: Jason van Zyl > Fix For: 3.1.1 > > Attachments: MNG-3092.patch, MNG-3092.patch > > > Contrary to the 2.0 design docs: > "Resolution of dependency ranges should not resolve to a snapshot > (development version) unless it is included as an explicit boundary." > -- from > http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution#DependencyMediationandConflictResolution-Incorporating%7B%7BSNAPSHOT%7D%7Dversionsintothespecification > The following is equates to true: > VersionRange.createFromVersionSpec( "[1.0,1.1]" ).containsVersion( new > DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) > The attached patch only allows snapshot versions to be contained in a range > if they are equal to one of the boundaries. Note that this is a strict > equality, so [1.0,1.2-SNAPSHOT] will not contain 1.1-SNAPSHOT. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira