When releasing from a parent POM, won't all its modules have the same release version and dev version as this parent?

Maven Release Plugin will prompt for each project's version.


How can I release a parent POM without releasing all its modules?

You need to pass the -N flag to Maven and configure the Release Plugin to pass the -N flag on its forked builds with the -Darguments flag.

Here's an example:

mvn -N -Darguments=-N release:prepare
mvn -N -Darguments=-N release:perform


How can I hide my username and password?

Add a server-entry to your settings.xml, where you define your credentials (see settings.xml#servers for more details). Since you can't set an id for the scm in your pom.xml, you should add a property pointing to the server-id.



How can I customize the comment prefix of a commit during release preparation?

By default the plugin will prefix the comment with [maven-release-plugin]. You can change this by adding -DscmCommentPrefix=#42 to the Maven command.

If you need to end this with a linebreak, add ${line.separator}.

If the comment prefix contains whitespace characters, surround the argument with quotes.

When using the plugin-configuration, you can't end with a space, because Plexus will trim the content. But you can end with a linebreak just like the example above:



Why is release:prepare failing when trying to tag with "svn: Path '...' does not exist in revision ..."

If the pom.xml has no scm-section but inherits one from its parent, the prepare goal will fail when trying to tag. The message will be something like:

svn: Path '...' does not exist in revision ...

To fix it, roll-back the release, add the scm section to the pom.xml, commit and retry the release.