[
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