views:

9

answers:

1

Hi,

I develop in trunk and periodically tag "stable releases" with the maven release plugin. For example:

/trunk is MyProject 1.1-SNAPSHOT

creates the stable release

/tags/MyProject-1.1

Works fine, no problems, just perfect.

Sometimes I have to deploy a hotfix but the trunk isn't ready, yet. So I need a branch from the last stable tag. Can maven help me here? Currently I copy the tag to the new branch location /branches/MyProject-1.1.1-SNAPSHOT and update the versions with mvn versions:set

A: 

So I need a branch from the last stable tag. Can maven help me here?

The Maven Release Plugin and its release:branch can help. Check out the tag and create a branch from the tag:

By default, the POM in the new branch keeps the same version as the local working copy, and the local POM is incremented to the next revision. If you want to update versions in the new branch and not in the working copy, run:

mvn release:branch -DbranchName=my-branch -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false

Note: This can be useful if you want to create a branch from a tag

Specify versions on the command line

You may want to specify the versions to use on the command line. This can be useful for example if you are running the release in non-interactive mode. The branch goal can use the same properties used by the prepare goal for specifying the versions to be used.

mvn --batch-mode release:branch -DbranchName=my-branch-1.2 -Dproject.rel.org.myCompany:projectA=1.2 \
     -Dproject.dev.org.myCompany:projectA=2.0-SNAPSHOT

In this example, the POM in the new branch will be set to the version 1.2-SNAPSHOT, and the local POM will be set to the version 2.0-SNAPSHOT.

Resources

Pascal Thivent
If I check out the latest stable release, for example `svn co repo/tags/MyProject-1.1` I get a folder MyProject-1.1. If I convert the working copy to a branch `MyProject-1.1-SNAPSHOT`, where do I have to specify the new version? I'm sure maven didn't ask me for it (which is strange because it works fine with release:prepare)
Jan