[ https://jira.codehaus.org/browse/MNG-3092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=323399#comment-323399 ]
Mark Hobson commented on MNG-3092: ---------------------------------- Hi all, good to see some discussion on this long-standing issue! This is not currently a pressing issue for me, hence my absence, but it's a big thorn in Maven's side that I'd love to see removed. Re-reading the comments here, I see three main issues: 1) The original problem of not being able to control version ranges resolving to snapshots 2) How to perform CI with projects that use version ranges 3) A degradation of performance in Maven3 when resolving version ranges The latter performance problem (3) should be raised as a separate issue if one does not exist already. I have witnessed this and doubt that there would be any objections to fixing it. The CI problem (2) appears orthogonal to the original issue. How to build the latest versions of projects against each other in CI is a problem that currently exists *without* version ranges. A mechanism to support real continuous integration between project builds sounds like a separate feature request, whether they use soft versions or version ranges. I don't buy the argument that a flag is required to change version range resolution behaviour just because updating dependency versions in POMs takes too much time. The workflow with version ranges should be the same as with soft versions (snapshot, release, snapshot), only now we're changing the upper bound instead. The release plugin helps automate this currently and there's no reason why it couldn't also help with version ranges too. This leaves us with the original issue which I believe just needs to be fixed. I'm happy to help discuss this particular issue with the rest of the development team so we can close this long-standing bug. Satisfying everyone's particular workflow is going to be out of scope for this issue, so I'd suggest raising new issues for your specific use-cases. > 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