Maven Release Plugin will prompt for each project's version.
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
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.
<project> ... <properties> <project.scm.id>my-scm-server<project.scm.id> </properties> </project>
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:
<configuration> <scmCommentPrefix>#42${line.separator}</scmCommentPrefix> ... </configuration>
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.