[ 
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

Reply via email to