release:prepare
Full name:
org.apache.maven.plugins:maven-release-plugin:3.1.1:prepare
Description:
Prepare for a release in SCM. Steps through several phases to ensure the POM is ready to be released and then prepares SCM to eventually contain a tagged version of the release and a record in the local copy of the parameters used. This can be followed by a call to release:perform
. For more info see https://maven.apache.org/plugins/maven-release-plugin/usage/prepare-release.html.
Attributes:
- Requires a Maven project to be executed.
- Executes as an aggregator goal.
- The goal is not marked as thread-safe and thus does not support parallel builds.
Optional Parameters
Name | Type | Since | Description |
---|---|---|---|
<addSchema> |
boolean |
- |
Whether to add a schema to the POM if it was previously missing on release. Default: true User Property: addSchema |
<allowTimestampedSnapshots> |
boolean |
2.0-beta-7 |
Whether to allow timestamped SNAPSHOT dependencies. Default is to fail when finding any SNAPSHOT. Default: false User Property: ignoreSnapshots |
<arguments> |
String |
- |
Additional arguments to pass to the Maven executions, separated by spaces. User Property: arguments Alias: prepareVerifyArgs |
<autoResolveSnapshots> |
String |
3.0.0-M4 |
Specifies whether unresolved SNAPSHOT dependencies should automatically be resolved. If this is set, then this specifies the default answer to be used when unresolved SNAPSHOT dependencies should automatically be resolved ( 0:All 1:Project Dependencies 2:Plugins 3:Reports 4:Extensions ). Possible values are:
User Property: autoResolveSnapshots |
<autoVersionSubmodules> |
boolean |
2.0-beta-5 |
Whether to automatically assign submodules the parent version. If set to false, the user will be prompted for the version of each submodules. Default: false User Property: autoVersionSubmodules |
<checkModificationExcludeList> |
String |
2.1 |
Command-line version of checkModificationExcludes. User Property: checkModificationExcludeList |
<checkModificationExcludes> |
String[] |
2.1 |
A list of additional exclude filters that will be skipped when checking for modifications on the working copy. Is ignored, when checkModificationExcludes is set. |
<commitByProject> |
boolean |
2.0-beta-5 |
Commits to do are atomic or by project. Default: false User Property: commitByProject |
<completionGoals> |
String |
2.2 |
Goals to run on completion of the preparation step, after transformation back to the next development version but before committing. Space delimited. User Property: completionGoals |
<developmentVersion> |
String |
2.0-beta-8 |
Default version to use for new local working copy. User Property: developmentVersion |
<dryRun> |
boolean |
- |
Dry run: don't checkin or tag anything in the scm repository, or modify the checkout. Running mvn -DdryRun=true release:prepare is useful in order to check that modifications to poms and scm operations (only listed on the console) are working as expected. Modified POMs are written alongside the originals without modifying them.Default: false User Property: dryRun |
<generateReleasePoms> |
boolean |
- |
Deprecated. Please use release:prepare-with-pom instead. No description. Default: false User Property: generateReleasePoms |
<javaHome> |
File |
2.0-beta-8 |
The Java home parameter to use for forked Maven invocations. Default: ${java.home} |
<lineSeparator> |
String |
3.0.0-M6 |
Specifies the line separator to format pom.xml. The following properties are available:
Default: source User Property: lineSeparator |
<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 |
<pinExternals> |
boolean |
3.0.0-M4 |
Currently only implemented with svn scm. Enable the --pin-externals option in svn copy command which is new in Subversion 1.9.Default: false User Property: pinExternals |
<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 |
<preparationGoals> |
String |
- |
Goals to run as part of the preparation step, after transformation but before committing. Space delimited. Default: clean verify User Property: preparationGoals |
<preparationProfiles> |
String |
3.0.0 |
Comma separated profiles to enable on release prepare, in addition to active profiles for project execution. User Property: preparationProfiles |
<projectTagNamingPolicyId> |
String |
3.0.0-M1 |
The role-hint for the org.apache.maven.shared.release.policy.naming.NamingPolicy implementation used to calculate the project branch and tag names.See also: org.apache.maven.shared.release.policies.DefaultNamingPolicy User Property: projectNamingPolicyId |
<projectVersionPolicyConfig> |
PlexusConfiguration |
3.0.0 |
Optional config for the VersionPolicy implementation used to calculate the project versions. User Property: projectVersionPolicyConfig |
<projectVersionPolicyId> |
String |
2.5.1 |
The role-hint for the org.apache.maven.shared.release.policy.version.VersionPolicy implementation used to calculate the project versions.See also: org.apache.maven.shared.release.policies.DefaultVersionPolicy Default: default User Property: projectVersionPolicyId |
<providerImplementations> |
Map<String,String> |
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 org.apache.maven.scm.provider.ScmProvider .See also: org.apache.maven.scm.manager.ScmManager.setScmProviderImplementation(java.lang.String,java.lang.String) |
<pushChanges> |
boolean |
2.1 |
Implemented with git will or not push changes to the upstream repository. true by default to preserve backward compatibility.Default: true User Property: pushChanges |
<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 |
<releaseVersion> |
String |
2.0-beta-8 |
Default version to use when preparing a release or a branch. User Property: releaseVersion |
<remoteTagging> |
boolean |
2.0-beta-9 |
Currently only implemented with svn scm.
Default: true User Property: remoteTagging |
<resume> |
boolean |
- |
Resume a previous release attempt from the point where it was stopped. Default: true User Property: resume |
<scmCommentPrefix> |
String |
2.0-beta-5 |
The message prefix to use for all SCM changes. Default: [maven-release-plugin] User Property: scmCommentPrefix |
<scmDevelopmentCommitComment> |
String |
3.0.0-M1 |
The SCM commit comment when setting pom.xml back to development. Defaults to "@{prefix} prepare for next development iteration".
Property interpolation is performed on the value, but in order to ensure that the interpolation occurs during release, you must use
Default: @{prefix} prepare for next development iteration User Property: scmDevelopmentCommitComment |
<scmReleaseCommitComment> |
String |
3.0.0-M1 |
The SCM commit comment when setting pom.xml to release. Defaults to "@{prefix} prepare release @{releaseLabel}".
Property interpolation is performed on the value, but in order to ensure that the interpolation occurs during release, you must use
Default: @{prefix} prepare release @{releaseLabel} User Property: scmReleaseCommitComment |
<scmShallowClone> |
boolean |
- |
When cloning a repository if it should be a shallow clone or a full clone. Default: true User Property: scmShallowClone |
<signTag> |
boolean |
3.0.0-M4 |
Signs SCM tag when possible, for example when using the git-exe the '--sign' argument is used. User Property: signTag |
<suppressCommitBeforeTag> |
boolean |
2.1 |
Whether to suppress a commit of changes to the working copy before the tag is created.
This requires remoteTagging to be set to false.
suppressCommitBeforeTag is useful when you want to avoid poms with released versions in all revisions of your trunk or development branch.Default: false User Property: suppressCommitBeforeTag |
<tag> |
String |
- |
The SCM tag to use. User Property: tag Alias: releaseLabel |
<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.User Property: tagBase |
<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:
Default: @{project.artifactId}-@{project.version} User Property: tagNameFormat |
<updateDependencies> |
boolean |
2.0-beta-5 |
Whether to update dependencies version to the next development version. Default: true User Property: updateDependencies |
<updateWorkingCopyVersions> |
boolean |
2.1 |
Whether to bump the working copy versions to developmentVersion .Default: true User Property: updateWorkingCopyVersions |
<useEditMode> |
boolean |
- |
Whether to use "edit" mode on the SCM, to lock the file for editing during SCM operations. Default: false User Property: useEditMode |
<username> |
String |
- |
The SCM username to use. User Property: username |
<waitBeforeTagging> |
int |
2.2 |
Wait the specified number of seconds before creating the tag.
waitBeforeTagging is useful when your source repository is synced between several instances and access to it is determined by geographical location, like the SVN repository at the Apache Software Foundation.Default: 0 User Property: waitBeforeTagging |
<workItem> |
String |
3.0.0-M5 |
A workItem for SCMs like RTC, TFS etc, that may require additional information to perform a pushChange operation. User Property: workItem |
Parameter Details
<addSchema>
- Type:
boolean
- Required:
No
- User Property:
addSchema
- Default:
true
<allowTimestampedSnapshots>
- Type:
boolean
- Since:
2.0-beta-7
- Required:
No
- User Property:
ignoreSnapshots
- Default:
false
<arguments>
- Type:
java.lang.String
- Required:
No
- User Property:
arguments
- Alias:
prepareVerifyArgs
<autoResolveSnapshots>
- "all" or "0": resolve all kinds of snapshots, ie. project, plugin, report and extension dependencies
- "dependencies" or "1": resolve project dependencies
- "plugins" or "2": resolve plugin dependencis
- "reports" or "3": resolve report dependencies
- "extensions" or "4": resolve extension dependencies
- Type:
java.lang.String
- Since:
3.0.0-M4
- Required:
No
- User Property:
autoResolveSnapshots
<autoVersionSubmodules>
- Type:
boolean
- Since:
2.0-beta-5
- Required:
No
- User Property:
autoVersionSubmodules
- Default:
false
<checkModificationExcludeList>
- Type:
java.lang.String
- Since:
2.1
- Required:
No
- User Property:
checkModificationExcludeList
<checkModificationExcludes>
- Type:
java.lang.String[]
- Since:
2.1
- Required:
No
<commitByProject>
- Type:
boolean
- Since:
2.0-beta-5
- Required:
No
- User Property:
commitByProject
- Default:
false
<completionGoals>
- Type:
java.lang.String
- Since:
2.2
- Required:
No
- User Property:
completionGoals
<developmentVersion>
- Type:
java.lang.String
- Since:
2.0-beta-8
- Required:
No
- User Property:
developmentVersion
<dryRun>
mvn -DdryRun=true release:prepare
is useful in order to check that modifications to poms and scm operations (only listed on the console) are working as expected. Modified POMs are written alongside the originals without modifying them.- Type:
boolean
- Required:
No
- User Property:
dryRun
- Default:
false
<generateReleasePoms>
Please use release:prepare-with-pom instead.
- Type:
boolean
- Required:
No
- User Property:
generateReleasePoms
- Default:
false
<javaHome>
- Type:
java.io.File
- Since:
2.0-beta-8
- Required:
No
- Default:
${java.home}
<lineSeparator>
system
- Use the system line separator.lf
- Use \n as line separator.cr
- Use \r as line separator.crlf
- Use \r\n as line separator.source
- Use the same line separator as it is specified in the current pom.xml.
- Type:
java.lang.String
- Since:
3.0.0-M6
- Required:
No
- User Property:
lineSeparator
- Default:
source
<localRepoDirectory>
- Type:
java.io.File
- Since:
2.0-beta-8
- Required:
No
- Default:
${maven.repo.local}
<mavenExecutorId>
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>
- Type:
java.io.File
- Since:
2.0-beta-8
- Required:
No
- Default:
${maven.home}
<password>
- Type:
java.lang.String
- Required:
No
- User Property:
password
<pinExternals>
--pin-externals
option in svn copy
command which is new in Subversion 1.9.- Type:
boolean
- Since:
3.0.0-M4
- Required:
No
- User Property:
pinExternals
- Default:
false
<pomFileName>
- Type:
java.lang.String
- Required:
No
- User Property:
pomFileName
- Default:
${project.file.name}
<preparationGoals>
- Type:
java.lang.String
- Required:
No
- User Property:
preparationGoals
- Default:
clean verify
<preparationProfiles>
- Type:
java.lang.String
- Since:
3.0.0
- Required:
No
- User Property:
preparationProfiles
<projectTagNamingPolicyId>
org.apache.maven.shared.release.policy.naming.NamingPolicy
implementation used to calculate the project branch and tag names.See also: org.apache.maven.shared.release.policies.DefaultNamingPolicy
- Type:
java.lang.String
- Since:
3.0.0-M1
- Required:
No
- User Property:
projectNamingPolicyId
<projectVersionPolicyConfig>
- Type:
org.codehaus.plexus.configuration.PlexusConfiguration
- Since:
3.0.0
- Required:
No
- User Property:
projectVersionPolicyConfig
<projectVersionPolicyId>
org.apache.maven.shared.release.policy.version.VersionPolicy
implementation used to calculate the project versions.See also: org.apache.maven.shared.release.policies.DefaultVersionPolicy
- Type:
java.lang.String
- Since:
2.5.1
- Required:
No
- User Property:
projectVersionPolicyId
- Default:
default
<providerImplementations>
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.0-beta-6
- Required:
No
<pushChanges>
true
by default to preserve backward compatibility.- Type:
boolean
- Since:
2.1
- Required:
No
- User Property:
pushChanges
- Default:
true
<releaseStrategyId>
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
<releaseVersion>
- Type:
java.lang.String
- Since:
2.0-beta-8
- Required:
No
- User Property:
releaseVersion
<remoteTagging>
- Enables a workaround to prevent issue due to svn client > 1.5.0 (fixed in 1.6.5) (https://issues.apache.org/jira/browse/SCM-406)
- You may not want to use this in conjunction with
suppressCommitBeforeTag
, such that no poms with released versions are committed to the working copy ever.
- Type:
boolean
- Since:
2.0-beta-9
- Required:
No
- User Property:
remoteTagging
- Default:
true
<resume>
- Type:
boolean
- Required:
No
- User Property:
resume
- Default:
true
<scmCommentPrefix>
- Type:
java.lang.String
- Since:
2.0-beta-5
- Required:
No
- User Property:
scmCommentPrefix
- Default:
[maven-release-plugin]
<scmDevelopmentCommitComment>
Property interpolation is performed on the value, 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:
prefix
- The comment prefix.groupId
- The groupId of the root project.artifactId
- The artifactId of the root project.releaseLabel
- The release version of the root project.
- Type:
java.lang.String
- Since:
3.0.0-M1
- Required:
No
- User Property:
scmDevelopmentCommitComment
- Default:
@{prefix} prepare for next development iteration
<scmReleaseCommitComment>
Property interpolation is performed on the value, 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:
prefix
- The comment prefix.groupId
- The groupId of the root project.artifactId
- The artifactId of the root project.releaseLabel
- The release version of the root project.
- Type:
java.lang.String
- Since:
3.0.0-M1
- Required:
No
- User Property:
scmReleaseCommitComment
- Default:
@{prefix} prepare release @{releaseLabel}
<scmShallowClone>
- Type:
boolean
- Required:
No
- User Property:
scmShallowClone
- Default:
true
<signTag>
- Type:
boolean
- Since:
3.0.0-M4
- Required:
No
- User Property:
signTag
<suppressCommitBeforeTag>
This requires
remoteTagging
to be set to false.
suppressCommitBeforeTag
is useful when you want to avoid poms with released versions in all revisions of your trunk or development branch.- Type:
boolean
- Since:
2.1
- Required:
No
- User Property:
suppressCommitBeforeTag
- Default:
false
<tag>
- Type:
java.lang.String
- Required:
No
- User Property:
tag
- Alias:
releaseLabel
<tagBase>
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
- User Property:
tagBase
<tagNameFormat>
@{...}
to reference the properties rather than ${...}
. The following properties are available:
groupId
orproject.groupId
- The groupId of the root project.artifactId
orproject.artifactId
- The artifactId of the root project.version
orproject.version
- The release version of the root project.
- Type:
java.lang.String
- Since:
2.2.0
- Required:
No
- User Property:
tagNameFormat
- Default:
@{project.artifactId}-@{project.version}
<updateDependencies>
- Type:
boolean
- Since:
2.0-beta-5
- Required:
No
- User Property:
updateDependencies
- Default:
true
<updateWorkingCopyVersions>
developmentVersion
.- Type:
boolean
- Since:
2.1
- Required:
No
- User Property:
updateWorkingCopyVersions
- Default:
true
<useEditMode>
- Type:
boolean
- Required:
No
- User Property:
useEditMode
- Default:
false
<username>
- Type:
java.lang.String
- Required:
No
- User Property:
username
<waitBeforeTagging>
waitBeforeTagging
is useful when your source repository is synced between several instances and access to it is determined by geographical location, like the SVN repository at the Apache Software Foundation.- Type:
int
- Since:
2.2
- Required:
No
- User Property:
waitBeforeTagging
- Default:
0
<workItem>
- Type:
java.lang.String
- Since:
3.0.0-M5
- Required:
No
- User Property:
workItem