On 2/23/14, 22:14, Arnaud Bailly wrote:
Hi, I know much more about maven than asdf and actually maven knows much more about the version than what you say.
- SNAPSHOT is not an arbitrary keyword (eg. a classifier in maven
parlance) but something that is baked in the artefact resolution and repository definition of maven. Snapshot versions can be updated and new versions looked for in a remote repository whereas "release" versions are never updated
- if the version number follows maven conventions (X.Y.Z numbers) then
actually you can define version ranges in dependencies ( http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-proje... ),
- moreover, there is a notion of ordering which is maintained in a
repository metadata so that one can request the LATEST version of some artefact.
Thanks for providing an inkling that my statements about Maven versioning were not correct.
A summary of my "research" with a little bit of DuckDuckGo'in:
The "version rules" seem to be best documented [within the version plugin][1] which allows the ranges you mention. Apparently there are multiple schemes for comparing versions, and there is even a configurable mechanism for rules. One caveat here is that ABCL currently is only using the Aether infrastructure, and not Maven itself so not everything applicable to Maven applies to ABCL's use of Aether. For example, we don't parse the Maven 'settings.xml' file.
The string following the "-" is known as a qualifier: a classifier is something appended to an artifact name to allow for different types to satisfy different conditions.
The "SNAPSHOT" qualifier is [indeed treated differently from others][2], and cannot be listed in the POM graph originating from http://repo1.maven.org/maven2.
[1]: http://mojo.codehaus.org/versions-maven-plugin/version-rules.html
[2]: http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-s...