release:perform

Full name:

org.apache.maven.plugins:maven-release-plugin:3.0.1: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 plugin.
  • 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 value is: ${project.build.directory}/checkout.
User property is: workingDirectory.

Optional Parameters

Name Type Since Description
<arguments> String - Additional arguments to pass to the Maven executions, separated by spaces.
User property is: arguments.
Alias is: 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 is: 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 value is: false.
User property is: 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 is: goals.
<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 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 value is: false.
User property is: localCheckout.
<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 org.apache.maven.shared.release.exec.MavenExecutor implementation to use.
Default value is: invoker.
User property is: mavenExecutorId.
<mavenHome> File 2.0-beta-8 The Maven home parameter to use for forked Maven invocations.
Default value is: ${maven.home}.
<password> String - The SCM password to use.
User property is: 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 value is: ${project.file.name}.
User property is: 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 is: 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 value is: default.
User property is: releaseStrategyId.
<scmShallowClone> boolean - When cloning a repository if it should be a shallow clone or a full clone.
Default value is: true.
User property is: scmShallowClone.
<useReleaseProfile> boolean - Deprecated. 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 value is: false.
User property is: useReleaseProfile.
<username> String - The SCM username to use.
User property is: 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