Fork me on GitHub

prerelease:promote

Full name:

net.oneandone.maven.plugins:prerelease:1.6.3-SNAPSHOT:promote

Description:

Promotes a prerelease by commuting the tag and deploying its artifact(s). Execute this goal in the svn working directory of the project you want to release and make sure you have created a prerelease. This goal commits the tag of the current prerelease and deploys the respective artifact(s). It also updates (in your svn trunk or branch on the svn server) the project version in pom.xml to the next development version, and it updates your changes file (if you have one). In your svn working directory, it runs "svn up" to get the adjusted pom and changes files. Artifacts are deployed by invoking all plugin goals tied to the deploy phase. The first goal is mandatory, because it's configured by the packaging. If it fails, promotion fails. All other goals (e.g. email notifications) are optional: they may fail (yielding the respective warning), but they don't cause the promote goal to fail. Error handling. In contrast to Maven's Release Plugin there's no rollback goal: when promote fails, artifacts and tags will be properly removed. (If Tag creation fails, this goal fails with an error. If artifact deployment fails, the svn tag will be deleted from the repository and the goal fails with an error. If optional promote goal fail, the plugins succeeds, but it issues a warning.) Note that the deployment date of artifacts in the repository may be later that the release date in the changes.xml.

Attributes:

  • Requires a Maven project to be executed.

Required Parameters

Name Type Since Description
keep int - Number of prereleases to keep in archive. 0 to keep all, which should only be used together with swap and keep.
Default value is: 1.
User property is: prerelease.keep.
lockTimeout int - Timeout in seconds for locking a prerelease archive.
Default value is: 3600.
User property is: prerelease.lockTimeout.
storages List - Where to store prereleases.
Default value is: ${settings.localRepository}/../prereleases.
User property is: prerelease.storages.

Optional Parameters

Name Type Since Description
allowPrereleaseSnapshots boolean - Report errors for snapshot dependencies to the prerelease plugin. True is used in integration tests.
Default value is: false.
User property is: prerelease.allowPrereleaseSnapshots.
allowSnapshots boolean - Report errors for snapshot dependencies, plugins or parents when false. True is useful for testing.
Default value is: false.
User property is: prerelease.allowSnapshots.
checkoutLink String - Specifies where to create a symlink to the prerelease checkout. No symlink is created if the prerelease has no checkout yet (and thus is broken). No symlink is created if not specified.
Default value is: ${basedir}/target/checkout.
User property is: prerelease.checkoutLink.
createTagMessage String - Message for svn commit of the new tag.
Default value is: Prerelease ${revision} promoted to release ${release}..
User property is: prerelease.createTagMessage.
nextIterationMessage String - Message for svn commit to start new development iteration.
Default value is: Prerelease ${revision} promoted to release ${release}, starting next development iteration..
User property is: prerelease.nextIterationMessage.
propertyArgs String - Extra arguments to pass to the sub-maven build. A space-separated list with entries of the form -Dkey=value. Similar to "arguments" parameter of the Maven Release Plugin, but restricted to -D properties.
User property is: prerelease.args.
revertTagMessage String - Svn commit message when reverting the tag.
Default value is: Reverting tag for release ${release} because the deployment failed..
User property is: prerelease.revertTagMessage.
snapshots boolean - Set to true to deploy snapshots for every successfully built prerelease
Default value is: false.
User property is: prerelease.snapshots.

Parameter Details

allowPrereleaseSnapshots:

Report errors for snapshot dependencies to the prerelease plugin. True is used in integration tests.
  • Type: boolean
  • Required: No
  • User Property: prerelease.allowPrereleaseSnapshots
  • Default: false

allowSnapshots:

Report errors for snapshot dependencies, plugins or parents when false. True is useful for testing.
  • Type: boolean
  • Required: No
  • User Property: prerelease.allowSnapshots
  • Default: false

checkoutLink:

Specifies where to create a symlink to the prerelease checkout. No symlink is created if the prerelease has no checkout yet (and thus is broken). No symlink is created if not specified.
  • Type: java.lang.String
  • Required: No
  • User Property: prerelease.checkoutLink
  • Default: ${basedir}/target/checkout

createTagMessage:

Message for svn commit of the new tag.
  • Type: java.lang.String
  • Required: No
  • User Property: prerelease.createTagMessage
  • Default: Prerelease ${revision} promoted to release ${release}.

keep:

Number of prereleases to keep in archive. 0 to keep all, which should only be used together with swap and keep.
  • Type: int
  • Required: Yes
  • User Property: prerelease.keep
  • Default: 1

lockTimeout:

Timeout in seconds for locking a prerelease archive.
  • Type: int
  • Required: Yes
  • User Property: prerelease.lockTimeout
  • Default: 3600

nextIterationMessage:

Message for svn commit to start new development iteration.
  • Type: java.lang.String
  • Required: No
  • User Property: prerelease.nextIterationMessage
  • Default: Prerelease ${revision} promoted to release ${release}, starting next development iteration.

propertyArgs:

Extra arguments to pass to the sub-maven build. A space-separated list with entries of the form -Dkey=value. Similar to "arguments" parameter of the Maven Release Plugin, but restricted to -D properties.
  • Type: java.lang.String
  • Required: No
  • User Property: prerelease.args

revertTagMessage:

Svn commit message when reverting the tag.
  • Type: java.lang.String
  • Required: No
  • User Property: prerelease.revertTagMessage
  • Default: Reverting tag for release ${release} because the deployment failed.

snapshots:

Set to true to deploy snapshots for every successfully built prerelease
  • Type: boolean
  • Required: No
  • User Property: prerelease.snapshots
  • Default: false

storages:

Where to store prereleases.
  • Type: java.util.List
  • Required: Yes
  • User Property: prerelease.storages
  • Default: ${settings.localRepository}/../prereleases