I've got a project at version 0.0.1-SNAPSHOT, and when we build it via TeamCity, we also get a build.vcs.number property, which is the Subversion revision that triggered the build.
In our assemblies, we create a zip file called something like foo-distribution-0.0.1-SNAPSHOT.zip, but I was wondering whether there's a way I can insert the build.vcs.number property into the artifact name to give foo-distribution-0.0.1.12345-SNAPSHOT.zip?
Is there a built-in property that is just the numeric part of the version number, or some other way of splitting off the -SNAPSHOT part?
EDIT: I have already tried setting the pom.xml version as ${my.version}-SNAPSHOT, and then defining my.version in the properties - this works for ever case except for the Maven Release Plugin, which complains that it cannot parse the version (understandably, it can't auto-guess the next development version either).
I realize this question is a tad dated, but I just ran into a similar situation, and this is how I resolved it:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>parse-version</id>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
</executions>
</plugin>
What this build-helper plugin's "parse-version" mojo will do is give you the following properties that you can use as you see fit:
parsedVersion.majorVersion
parsedVersion.minorVersion
parsedVersion.incrementalVersion
parsedVersion.qualifier
parsedVersion.buildNumber
That should cover all of your desired version "parts." I'm currently using this to build chrome extensions in which the manifest version cannot include "-SNAPSHOT" and must be at most 4 numbers separated by dots. In my use case, I use this combination to produce the desired result:
"version":"${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
So, I'm essentially stripping of "-SNAPSHOT" so my local dev copies of my extension will install properly for testing. You can build whatever you want with the pieces. =)