release:branch

Full name:

org.apache.maven.plugins:maven-release-plugin:3.0.0-M1:branch

Description:

Branch a project in SCM, using the same steps as the release:prepare goal, creating a branch instead of a tag. For more info see https://maven.apache.org/plugins/maven-release-plugin/examples/branch.html.

Attributes:

  • Requires a Maven project to be executed.
  • Executes as an aggregator plugin.
  • Since version: 2.0-beta-6.

Optional Parameters

Name Type Since Description
addSchema boolean 2.0-beta-6 Whether to add a schema to the POM if it was previously missing on release.
Default value is: true.
User property is: addSchema.
arguments String 2.0-beta-6 Additional arguments to pass to the Maven executions, separated by spaces.
User property is: arguments.
autoVersionSubmodules boolean 2.0-beta-6 Whether to automatically assign submodules the parent version. If set to false, the user will be prompted for the version of each submodules.
Default value is: false.
User property is: autoVersionSubmodules.
branchBase String 2.0 The branch base directory in SVN, you must define it if you don't use the standard svn layout (trunk/tags/branches). For example, http://svn.apache.org/repos/asf/maven/plugins/branches. The URL is an SVN URL and does not include the SCM provider and protocol.
User property is: branchBase.
branchName String 2.0-beta-6 The branch name to use.
User property is: branchName.
checkModificationExcludeList String 2.1 Command-line version of checkModificationExcludes.
User property is: checkModificationExcludeList.
checkModificationExcludes String[] 2.1 A list of additional exclude filters that will be skipped when checking for modifications on the working copy. Is ignored, when checkModificationExcludes is set.
developmentVersion String 2.0 Specify the new version for the working copy. This parameter is only meaningful if updateWorkingCopyVersions = true.
User property is: developmentVersion.
dryRun boolean 2.0-beta-6 Dry run: don't checkin or tag anything in the scm repository, or modify the checkout. Running mvn -DdryRun=true release:prepare is useful in order to check that modifications to poms and scm operations (only listed on the console) are working as expected. Modified POMs are written alongside the originals without modifying them.
Default value is: false.
User property is: dryRun.
javaHome File 2.0-beta-8 The JAVA_HOME parameter to use for forked Maven invocations.
Default value is: ${java.home}.
localRepoDirectory File 2.0-beta-8 The command-line local repository directory in use for this build (if specified).
Default value is: ${maven.repo.local}.
mavenExecutorId String 2.0-beta-8 Role hint of the MavenExecutor implementation to use.
Default value is: invoker.
User property is: mavenExecutorId.
mavenHome File 2.0-beta-8 The M2_HOME parameter to use for forked Maven invocations.
Default value is: ${maven.home}.
password String 2.0-beta-6 The SCM password to use.
User property is: password.
pomFileName String 2.0-beta-6 The file name of the POM to execute any goals against. As of version 3.0.0, this defaults to the name of POM file of the project being built.
Default value is: ${project.file.name}.
User property is: pomFileName.
projectBranchNamingPolicyId String 3.0.0 The role-hint for the NamingPolicy implementation used to calculate the project names.
User property is: projectNamingPolicyId.
projectVersionPolicyId String 3.0.0 The role-hint for the VersionPolicy implementation used to calculate the project versions.
Default value is: default.
User property is: projectVersionPolicyId.
providerImplementations Map 2.0-beta-6 Add a new or overwrite the default implementation per provider. The key is the scm prefix and the value is the role hint of the ScmProvider.
pushChanges boolean 2.1 Implemented with git will or not push changes to the upstream repository. true by default to preserve backward compatibility.
Default value is: true.
User property is: pushChanges.
releaseStrategyId String 3.0.0 The role-hint for the Strategy implementation used to specify the phases per goal.
Default value is: default.
User property is: releaseStrategyId.
releaseVersion String 2.0 Specify the new version for the branch. This parameter is only meaningful if updateBranchVersions = true.
User property is: releaseVersion.
remoteTagging boolean 2.0 currently only implemented with svn scm. Enable a workaround to prevent issue due to svn client > 1.5.0 (https://issues.apache.org/jira/browse/SCM-406)
Default value is: true.
User property is: remoteTagging.
scmBranchCommitComment String 3.0.0-M1 The SCM commit comment when branching. Defaults to "@{prefix} prepare branch @{releaseLabel}".

Property interpolation is performed on the value, but in order to ensure that the interpolation occurs during release, you must use @{...} to reference the properties rather than ${...}. The following properties are available:

  • prefix - The comment prefix.
  • groupId - The groupId of the root project.
  • artifactId - The artifactId of the root project.
  • releaseLabel - The release version of the root project.

Default value is: @{prefix} prepare branch @{releaseLabel}.
User property is: scmBranchCommitComment.
scmCommentPrefix String 2.0-beta-5 The message prefix to use for all SCM changes.
Default value is: [maven-release-plugin] .
User property is: scmCommentPrefix.
suppressCommitBeforeBranch boolean 2.1 Whether to suppress a commit of changes to the working copy before the tag is created.

This requires remoteTagging to be set to false.

suppressCommitBeforeBranch is useful when you want to avoid poms with released versions in all revisions of your trunk or development branch.
Default value is: false.
User property is: suppressCommitBeforeBranch.
tag String 2.0-beta-6 The SCM tag to use.
User property is: tag.
tagBase String 2.0-beta-6 The tag base directory in SVN, you must define it if you don't use the standard svn layout (trunk/tags/branches). For example, http://svn.apache.org/repos/asf/maven/plugins/tags. The URL is an SVN URL and does not include the SCM provider and protocol.
User property is: tagBase.
tagNameFormat String 2.2.0 Format to use when generating the tag name if none is specified. Property interpolation is performed on the tag, but in order to ensure that the interpolation occurs during release, you must use @{...} to reference the properties rather than ${...}. The following properties are available:
  • groupId or project.groupId - The groupId of the root project.
  • artifactId or project.artifactId - The artifactId of the root project.
  • version or project.version - The release version of the root project.

Default value is: @{project.artifactId}-@{project.version}.
User property is: tagNameFormat.
updateBranchVersions boolean 2.0-beta-6 Whether to update versions in the branch.
Default value is: false.
User property is: updateBranchVersions.
updateDependencies boolean 2.0-beta-6 Whether to update dependencies version to the next development version.
Default value is: true.
User property is: updateDependencies.
updateVersionsToSnapshot boolean 2.0-beta-6 Whether to update versions to SNAPSHOT in the branch.
Default value is: true.
User property is: updateVersionsToSnapshot.
updateWorkingCopyVersions boolean 2.0-beta-6 Whether to update versions in the working copy.
Default value is: true.
User property is: updateWorkingCopyVersions.
useEditMode boolean 2.0-beta-6 Whether to use "edit" mode on the SCM, to lock the file for editing during SCM operations.
Default value is: false.
User property is: useEditMode.
username String 2.0-beta-6 The SCM username to use.
User property is: username.
workItem String 3.0.0 A workItem for SCMs like RTC, TFS etc, that may require additional information to perform a pushChange operation.
User property is: workItem.

Parameter Details

addSchema:

Whether to add a schema to the POM if it was previously missing on release.
  • Type: boolean
  • Since: 2.0-beta-6
  • Required: No
  • User Property: addSchema
  • Default: true

arguments:

Additional arguments to pass to the Maven executions, separated by spaces.
  • Type: java.lang.String
  • Since: 2.0-beta-6
  • Required: No
  • User Property: arguments

autoVersionSubmodules:

Whether to automatically assign submodules the parent version. If set to false, the user will be prompted for the version of each submodules.
  • Type: boolean
  • Since: 2.0-beta-6
  • Required: No
  • User Property: autoVersionSubmodules
  • Default: false

branchBase:

The branch base directory in SVN, you must define it if you don't use the standard svn layout (trunk/tags/branches). For example, http://svn.apache.org/repos/asf/maven/plugins/branches. The URL is an SVN URL and does not include the SCM provider and protocol.
  • Type: java.lang.String
  • Since: 2.0
  • Required: No
  • User Property: branchBase

branchName:

The branch name to use.
  • Type: java.lang.String
  • Since: 2.0-beta-6
  • Required: No
  • User Property: branchName

checkModificationExcludeList:

Command-line version of checkModificationExcludes.
  • Type: java.lang.String
  • Since: 2.1
  • Required: No
  • User Property: checkModificationExcludeList

checkModificationExcludes:

A list of additional exclude filters that will be skipped when checking for modifications on the working copy. Is ignored, when checkModificationExcludes is set.
  • Type: java.lang.String[]
  • Since: 2.1
  • Required: No

developmentVersion:

Specify the new version for the working copy. This parameter is only meaningful if updateWorkingCopyVersions = true.
  • Type: java.lang.String
  • Since: 2.0
  • Required: No
  • User Property: developmentVersion

dryRun:

Dry run: don't checkin or tag anything in the scm repository, or modify the checkout. Running mvn -DdryRun=true release:prepare is useful in order to check that modifications to poms and scm operations (only listed on the console) are working as expected. Modified POMs are written alongside the originals without modifying them.
  • Type: boolean
  • Since: 2.0-beta-6
  • Required: No
  • User Property: dryRun
  • Default: false

javaHome:

The JAVA_HOME parameter to use for forked Maven invocations.
  • Type: java.io.File
  • Since: 2.0-beta-8
  • Required: No
  • Default: ${java.home}

localRepoDirectory:

The command-line local repository directory in use for this build (if specified).
  • Type: java.io.File
  • Since: 2.0-beta-8
  • Required: No
  • Default: ${maven.repo.local}

mavenExecutorId:

Role hint of the MavenExecutor implementation to use.
  • Type: java.lang.String
  • Since: 2.0-beta-8
  • Required: No
  • User Property: mavenExecutorId
  • Default: invoker

mavenHome:

The M2_HOME parameter to use for forked Maven invocations.
  • Type: java.io.File
  • Since: 2.0-beta-8
  • Required: No
  • Default: ${maven.home}

password:

The SCM password to use.
  • Type: java.lang.String
  • Since: 2.0-beta-6
  • Required: No
  • User Property: password

pomFileName:

The file name of the POM to execute any goals against. As of version 3.0.0, this defaults to the name of POM file of the project being built.
  • Type: java.lang.String
  • Since: 2.0-beta-6
  • Required: No
  • User Property: pomFileName
  • Default: ${project.file.name}

projectBranchNamingPolicyId:

The role-hint for the NamingPolicy implementation used to calculate the project names.
  • Type: java.lang.String
  • Since: 3.0.0
  • Required: No
  • User Property: projectNamingPolicyId

projectVersionPolicyId:

The role-hint for the VersionPolicy implementation used to calculate the project versions.
  • Type: java.lang.String
  • Since: 3.0.0
  • Required: No
  • User Property: projectVersionPolicyId
  • Default: default

providerImplementations:

Add a new or overwrite the default implementation per provider. The key is the scm prefix and the value is the role hint of the ScmProvider.
  • Type: java.util.Map
  • Since: 2.0-beta-6
  • Required: No

pushChanges:

Implemented with git will or not push changes to the upstream repository. true by default to preserve backward compatibility.
  • Type: boolean
  • Since: 2.1
  • Required: No
  • User Property: pushChanges
  • Default: true

releaseStrategyId:

The role-hint for the Strategy implementation used to specify the phases per goal.
  • Type: java.lang.String
  • Since: 3.0.0
  • Required: No
  • User Property: releaseStrategyId
  • Default: default

releaseVersion:

Specify the new version for the branch. This parameter is only meaningful if updateBranchVersions = true.
  • Type: java.lang.String
  • Since: 2.0
  • Required: No
  • User Property: releaseVersion

remoteTagging:

currently only implemented with svn scm. Enable a workaround to prevent issue due to svn client > 1.5.0 (https://issues.apache.org/jira/browse/SCM-406)
  • Type: boolean
  • Since: 2.0
  • Required: No
  • User Property: remoteTagging
  • Default: true

scmBranchCommitComment:

The SCM commit comment when branching. Defaults to "@{prefix} prepare branch @{releaseLabel}".

Property interpolation is performed on the value, but in order to ensure that the interpolation occurs during release, you must use @{...} to reference the properties rather than ${...}. The following properties are available:

  • prefix - The comment prefix.
  • groupId - The groupId of the root project.
  • artifactId - The artifactId of the root project.
  • releaseLabel - The release version of the root project.
  • Type: java.lang.String
  • Since: 3.0.0-M1
  • Required: No
  • User Property: scmBranchCommitComment
  • Default: @{prefix} prepare branch @{releaseLabel}

scmCommentPrefix:

The message prefix to use for all SCM changes.
  • Type: java.lang.String
  • Since: 2.0-beta-5
  • Required: No
  • User Property: scmCommentPrefix
  • Default: [maven-release-plugin]

suppressCommitBeforeBranch:

Whether to suppress a commit of changes to the working copy before the tag is created.

This requires remoteTagging to be set to false.

suppressCommitBeforeBranch is useful when you want to avoid poms with released versions in all revisions of your trunk or development branch.
  • Type: boolean
  • Since: 2.1
  • Required: No
  • User Property: suppressCommitBeforeBranch
  • Default: false

tag:

The SCM tag to use.
  • Type: java.lang.String
  • Since: 2.0-beta-6
  • Required: No
  • User Property: tag

tagBase:

The tag base directory in SVN, you must define it if you don't use the standard svn layout (trunk/tags/branches). For example, http://svn.apache.org/repos/asf/maven/plugins/tags. The URL is an SVN URL and does not include the SCM provider and protocol.
  • Type: java.lang.String
  • Since: 2.0-beta-6
  • Required: No
  • User Property: tagBase

tagNameFormat:

Format to use when generating the tag name if none is specified. Property interpolation is performed on the tag, but in order to ensure that the interpolation occurs during release, you must use @{...} to reference the properties rather than ${...}. The following properties are available:
  • groupId or project.groupId - The groupId of the root project.
  • artifactId or project.artifactId - The artifactId of the root project.
  • version or project.version - The release version of the root project.
  • Type: java.lang.String
  • Since: 2.2.0
  • Required: No
  • User Property: tagNameFormat
  • Default: @{project.artifactId}-@{project.version}

updateBranchVersions:

Whether to update versions in the branch.
  • Type: boolean
  • Since: 2.0-beta-6
  • Required: No
  • User Property: updateBranchVersions
  • Default: false

updateDependencies:

Whether to update dependencies version to the next development version.
  • Type: boolean
  • Since: 2.0-beta-6
  • Required: No
  • User Property: updateDependencies
  • Default: true

updateVersionsToSnapshot:

Whether to update versions to SNAPSHOT in the branch.
  • Type: boolean
  • Since: 2.0-beta-6
  • Required: No
  • User Property: updateVersionsToSnapshot
  • Default: true

updateWorkingCopyVersions:

Whether to update versions in the working copy.
  • Type: boolean
  • Since: 2.0-beta-6
  • Required: No
  • User Property: updateWorkingCopyVersions
  • Default: true

useEditMode:

Whether to use "edit" mode on the SCM, to lock the file for editing during SCM operations.
  • Type: boolean
  • Since: 2.0-beta-6
  • Required: No
  • User Property: useEditMode
  • Default: false

username:

The SCM username to use.
  • Type: java.lang.String
  • Since: 2.0-beta-6
  • Required: No
  • User Property: username

workItem:

A workItem for SCMs like RTC, TFS etc, that may require additional information to perform a pushChange operation.
  • Type: java.lang.String
  • Since: 3.0.0
  • Required: No
  • User Property: workItem