Perform a Release

Performing a release runs the following release phases:

  • Checkout from an SCM URL with optional tag
  • Run the predefined Maven goals to release the project (by default, deploy site-deploy)

To perform a release execute this command:

mvn release:perform

This relies on release.properties being present from a previous release preparation. If this is not the case, you need to give the goal the name of the URL and optional tag to perform the release from. For example:

mvn release:perform -DconnectionUrl=scm:svn:https://svn.apache.org/repos/asf/maven/plugins/tags/maven-release-plugin-2.0

release:perform will fork a new Maven instance to build the checked-out project. This new Maven instance will use the same system configuration and Maven profiles used by the one running the release:perform goal.

It is possible to force some profiles to get enabled during release (for example to enable time-consummung tasks that are only relevant at release-time) by setting a comma separated list of profiles names in the releaseProfiles parameter. The goals and profiles required to release the project can then be configured in the POM:

  <plugin>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.0</version>
    <configuration>
      <!--
        During release:perform, enable the "release" profile
       -->
      <releaseProfiles>release</releaseProfiles>
      <goals>deploy assembly:assembly</goals>
    </configuration>
  </plugin>

After the release is complete, the release.properties and other release files will be removed from the checkout.