In order to prepare a release, this steps have to be taken:

0. Ensure a cvs command-line client is installed and accessible with the "cvs" command.
   Start the pageant daemon including the private key for sourceforge CVS server.
   Make sure the CVS_RSH variable has value "plink"
   Make sure the "plink" executable is in the path
   Create a cvs checkout from the commmand line (to avoid conflicts with eclipse's "extssh" method)
   and work from this checkout.

1. In settings.xml, these entries must exist:

  <profiles>
    <profile>
      <id>releases</id>
      <properties>
        <gpg.keyname>[KEYNAME (EMAIL)]</gpg.keyname>
        <gpg.passphrase>[GPG PASSPHRASE]</gpg.passphrase>
      </properties>
    </profile>
  </profiles>
  <servers>
    <server>
      <id>sonatype-nexus-snapshots</id>
      <username>[USER IN SONATYPE NEXUS]</username>
      <password>[PASSWORD IN SONATYPE NEXUS]</password>
    </server>
  </servers>

2. Ensure all SVN URLs in pom.xml are using "https". A "502 Bad Gateway" error will be received if not.

3. Deploy SNAPSHOT artifact to Sonatype NEXUS with "mvn deploy", and check in Nexus web interface.

4. Execute a test "no modification" run of the release:prepare goal: "mvn -Preleases release:prepare -DdryRun=true -Dusername=[SVNUSER] -Dpassword=[SVNPASS] -Dmaven.scm.provider.cvs.implementation=cvs_native"

5. Execute a real run of the release:prepare goal: "mvn -Preleases release:prepare -Dusername=[SVNUSER] -Dpassword=[SVNPASS] -Dmaven.scm.provider.cvs.implementation=cvs_native"

6. Upload the release: "mvn -Preleases release:perform -Dusername=[SVNUSER] -Dpassword=[SVNPASS] -Dmaven.scm.provider.cvs.implementation=cvs_native"

7. Follow instructions for Nexus at: http://nexus.sonatype.org/oss-repository-hosting.html


