release:perform

Full name:

org.apache.maven.plugins:maven-release-plugin:2.3.2:perform

Description:

Perform a release from SCM, either from a specified tag, or the tag representing the previous release in the working copy created by release:prepare. For more info see http://maven.apache.org/plugins/maven-release-plugin/examples/perform-release.html.

Attributes:

  • Executes as an aggregator plugin.

Required Parameters

Name Type Since Description
workingDirectory File - The checkout directory.
Default value is: ${project.build.directory}/checkout.

Optional Parameters

Name Type Since Description
arguments String - Additional arguments to pass to the Maven executions, separated by spaces.
connectionUrl String - The SCM URL to checkout from. If omitted, the one from the release.properties file is used, followed by the URL from the current POM.
dryRun boolean - Dry run: don't checkout anything from the scm repository, or modify the checkout. The goals (by default at least deploy) will be executed against the current project.
Default value is: false.
goals String - A space separated list of goals to execute on deployment. Default value is either deploy or deploy site-deploy, if the project has a <distributionManagement>/<site> element.
javaHome File 2.0-beta-8 The JAVA_HOME parameter to use for forked Maven invocations.
Default value is: ${java.home}.
localCheckout boolean 2.0 Use a local checkout instead of doing a checkout from the upstream repository. ATTENTION: This will only work with distributed SCMs which support the file:// protocol like e.g. git, jgit or hg! TODO: we should think about having the defaults for the various SCM providers provided via modello!
Default value is: false.
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.
mavenHome File 2.0-beta-8 The M2_HOME parameter to use for forked Maven invocations.
Default value is: ${maven.home}.
password String - The SCM password to use.
pomFileName String - The file name of the POM to execute any goals against.
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.
releaseProfiles String 2.0-beta-8 Comma separated profiles to enable on deployment, in addition to active profiles for project execution.
scmCommentPrefix String 2.0-beta-5 The message prefix to use for all SCM changes.
Default value is: [maven-release-plugin] .
tag String - The SCM tag to use.
tagBase String - 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.
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}.
useReleaseProfile boolean - Whether to use the release profile that adds sources and javadocs to the released artifact, if appropriate. If set to true, the release plugin sets the property "performRelease" to true, which activates the profile "release-profile", which is inherited from the super pom.
Default value is: true.
username String - The SCM username to use.

Parameter Details

arguments:

Additional arguments to pass to the Maven executions, separated by spaces.
  • Type: java.lang.String
  • Required: No
  • Expression: ${arguments}

connectionUrl:

The SCM URL to checkout from. If omitted, the one from the release.properties file is used, followed by the URL from the current POM.
  • Type: java.lang.String
  • Required: No
  • Expression: ${connectionUrl}

dryRun:

Dry run: don't checkout anything from the scm repository, or modify the checkout. The goals (by default at least deploy) will be executed against the current project.
  • Type: boolean
  • Required: No
  • Expression: ${dryRun}
  • Default: false

goals:

A space separated list of goals to execute on deployment. Default value is either deploy or deploy site-deploy, if the project has a <distributionManagement>/<site> element.
  • Type: java.lang.String
  • Required: No
  • Expression: ${goals}

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}

localCheckout:

Use a local checkout instead of doing a checkout from the upstream repository. ATTENTION: This will only work with distributed SCMs which support the file:// protocol like e.g. git, jgit or hg! TODO: we should think about having the defaults for the various SCM providers provided via modello!
  • Type: boolean
  • Since: 2.0
  • Required: No
  • Expression: ${localCheckout}
  • Default: false

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
  • Expression: ${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
  • Required: No
  • Expression: ${password}

pomFileName:

The file name of the POM to execute any goals against.
  • Type: java.lang.String
  • Required: No
  • Expression: ${pomFileName}

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
  • Expression: ${pushChanges}
  • Default: true

releaseProfiles:

Comma separated profiles to enable on deployment, in addition to active profiles for project execution.
  • Type: java.lang.String
  • Since: 2.0-beta-8
  • Required: No
  • Expression: ${releaseProfiles}

scmCommentPrefix:

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

tag:

The SCM tag to use.
  • Type: java.lang.String
  • Required: No
  • Expression: ${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
  • Required: No
  • Expression: ${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
  • Expression: ${tagNameFormat}
  • Default: @{project.artifactId}-@{project.version}

useReleaseProfile:

Whether to use the release profile that adds sources and javadocs to the released artifact, if appropriate. If set to true, the release plugin sets the property "performRelease" to true, which activates the profile "release-profile", which is inherited from the super pom.
  • Type: boolean
  • Required: No
  • Expression: ${useReleaseProfile}
  • Default: true

username:

The SCM username to use.
  • Type: java.lang.String
  • Required: No
  • Expression: ${username}

workingDirectory:

The checkout directory.
  • Type: java.io.File
  • Required: Yes
  • Expression: ${workingDirectory}
  • Default: ${project.build.directory}/checkout