[ https://jira.codehaus.org/browse/MNG-3092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=322773#comment-322773 ]
Sergei Ivanov commented on MNG-3092: ------------------------------------ I have already expressed my preference: either a command-line switch to disable snapshot resolution in ranges, or a system property, e.g. {{-DenableSnapshotsInRanges=false}}. In order to retain full backward compatibility, snapshots will need to be *enabled* by default. The advantages of a build-level control are: 1. it consistently applies to all dependencies within the entire execution of a maven build 2. one does not have to edit the POM files in order to force inclusion or exclusion of snapshots: the same range will be resolved correctly in each case, depending on the switch state. This, for example, will allow to run two CI jobs for the same project: with snapshots enabled and disabled, without the need to use separate local repos and separate settings files. 3. from Maven implementation perspective, it does not require changes to the POM or settings file model Minor caveat: At present, one would still need to pass the correct arguments (i.e. disable the snapshots) down to the forked Maven invocation from the release plugin. This can be achieved via plugin configuration right now, but later it can be made an explicit option of the plugin (with snapshots *disabled* by default in the forked release builds to make sure they never break even if resolvable snapshots are present in the local repo). > 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