release:perform

Full name:

org.apache.maven.plugins:maven-release-plugin:3.1.0: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 https://maven.apache.org/plugins/maven-release-plugin/usage/perform-release.html.

Attributes:

  • Executes as an aggregator goal.
  • The goal is not marked as thread-safe and thus does not support parallel builds.

Required Parameters

Name Type Since Description
<workingDirectory> File - The checkout directory.
Default: ${project.build.directory}/checkout
User Property: workingDirectory

Optional Parameters

Name Type Since Description
<arguments> String - Additional arguments to pass to the Maven executions, separated by spaces.
User Property: arguments
Alias: prepareVerifyArgs
<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.
User Property: connectionUrl
<dryRun> boolean - Dry run: don't checkout anything from the scm repository, or modify the checkout. The goals (by default at least deploy) will not be executed.
Default: false
User Property: dryRun
<goals> String - A space separated list of goals to execute on release perform. Default value is either deploy or deploy site-deploy, if the project has a <distributionManagement>/<site> element.
User Property: goals
<javaHome> File 2.0-beta-8 The Java home parameter to use for forked Maven invocations.
Default: ${java.home}
<localCheckout> boolean 2.0 for release:perform and 2.5.2 for release:stage 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: false
User Property: localCheckout
<localRepoDirectory> File 2.0-beta-8 The command-line local repository directory in use for this build (if specified).
Default: ${maven.repo.local}
<mavenExecutorId> String 2.0-beta-8 Role hint of the org.apache.maven.shared.release.exec.MavenExecutor implementation to use.
Default: invoker
User Property: mavenExecutorId
<mavenHome> File 2.0-beta-8 The Maven home parameter to use for forked Maven invocations.
Default: ${maven.home}
<password> String - The SCM password to use.
User Property: password
<pomFileName> String - 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: ${project.file.name}
User Property: pomFileName
<providerImplementations> Map<String,String> 2.5.3 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 org.apache.maven.scm.provider.ScmProvider.
See also: org.apache.maven.scm.manager.ScmManager.setScmProviderImplementation(java.lang.String,java.lang.String)
<releaseProfiles> String 2.0-beta-8 Comma separated profiles to enable on release perform, in addition to active profiles for project execution.
User Property: releaseProfiles
<releaseStrategyId> String 3.0.0-M5 The role-hint for the org.apache.maven.shared.release.strategy.Strategy implementation used to specify the phases per goal.
See also: org.apache.maven.shared.release.strategies.DefaultStrategy
Default: default
User Property: releaseStrategyId
<scmShallowClone> boolean - When cloning a repository if it should be a shallow clone or a full clone.
Default: true
User Property: scmShallowClone
<useReleaseProfile> boolean -
Deprecated.
The release-profile profile will be removed from future versions of the super POM

Whether to use the default release profile (Maven 2 and 3) 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" as inherited from the super pom.
Default: false
User Property: useReleaseProfile
<username> String - The SCM username to use.
User Property: username

Parameter Details

<arguments>

Additional arguments to pass to the Maven executions, separated by spaces.
  • Type: java.lang.String
  • Required: No
  • User Property: arguments
  • Alias: prepareVerifyArgs

<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
  • User Property: connectionUrl

<dryRun>

Dry run: don't checkout anything from the scm repository, or modify the checkout. The goals (by default at least deploy) will not be executed.
  • Type: boolean
  • Required: No
  • User Property: dryRun
  • Default: false

<goals>

A space separated list of goals to execute on release perform. Default value is either deploy or deploy site-deploy, if the project has a <distributionManagement>/<site> element.
  • Type: java.lang.String
  • Required: No
  • User Property: 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 for release:perform and 2.5.2 for release:stage
  • Required: No
  • User Property: 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 org.apache.maven.shared.release.exec.MavenExecutor implementation to use.
  • Type: java.lang.String
  • Since: 2.0-beta-8
  • Required: No
  • User Property: mavenExecutorId
  • Default: invoker

<mavenHome>

The Maven 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
  • 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
  • Required: No
  • User Property: pomFileName
  • Default: ${project.file.name}

<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 org.apache.maven.scm.provider.ScmProvider.
See also: org.apache.maven.scm.manager.ScmManager.setScmProviderImplementation(java.lang.String,java.lang.String)
  • Type: java.util.Map<java.lang.String, java.lang.String>
  • Since: 2.5.3
  • Required: No

<releaseProfiles>

Comma separated profiles to enable on release perform, in addition to active profiles for project execution.
  • Type: java.lang.String
  • Since: 2.0-beta-8
  • Required: No
  • User Property: releaseProfiles

<releaseStrategyId>

The role-hint for the org.apache.maven.shared.release.strategy.Strategy implementation used to specify the phases per goal.
See also: org.apache.maven.shared.release.strategies.DefaultStrategy
  • Type: java.lang.String
  • Since: 3.0.0-M5
  • Required: No
  • User Property: releaseStrategyId
  • Default: default

<scmShallowClone>

When cloning a repository if it should be a shallow clone or a full clone.
  • Type: boolean
  • Required: No
  • User Property: scmShallowClone
  • Default: true

<useReleaseProfile>

Deprecated.
The release-profile profile will be removed from future versions of the super POM

Whether to use the default release profile (Maven 2 and 3) 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" as inherited from the super pom.
  • Type: boolean
  • Required: No
  • User Property: useReleaseProfile
  • Default: false

<username>

The SCM username to use.
  • Type: java.lang.String
  • Required: No
  • User Property: username

<workingDirectory>

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