Create a Branch

release:branch goal branches a project in SCM, using the same steps as the release:prepare goal, creating a branch instead of a tag.

Creating a branch involves the following release phases by default:

  • Check that there are no uncommitted changes in the sources
  • Change the version in the POMs if you want to change it in the branch (you will be prompted for the versions to use)
  • Transform the SCM information in the POM to include the final destination of the tag
  • Commit the modified POMs
  • Tag the code in the SCM as a new branch with a version name (this will be prompted for)
  • Bump the version in the POMs if you want to change it to a new value y-SNAPSHOT (these values will also be prompted for)
  • Commit the modified POMs

To create a branch execute this command:

mvn release:branch -DbranchName=my-branch

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 \

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.