Releasing maven Brett Porter Arnaud Heritier

At Maven, we eat our own dog food! Please make sure you are familiar with the Best Practices document and follow those techniques.

You have do these steps only for your first release.

You must define the following properties in ~/build.properties. (Note: you may want to put these in maven-plugins/plugin-parent/build.properties and in core/build.properties instead if you need to define them differently for other projects).

  • maven.username - your apache username to deploy the web site.
  • maven.password - your apache password (if needed, depending of the protocol used in the site plugin).
  • maven.repo.apache.releases.username - your apache username
  • maven.repo.apache.releases.privatekey - the filename of your SSH private key
  • maven.repo.apache.releases.passphrase - the passphrase for your private key (not your Apache password)
  • maven.announcement.mail.from - Your name and email address, as subscribed to the users and developers mailing lists, e.g. Brett Porter <brett@apache.org>. It's needed to use your apache account if you want to send the announcement to announce@maven.apache.org.
  • maven.announcement.mail.server - The SMTP server to use for sending the announcement mail.
  • maven.nsis.exe - The path to the nsis binary to generate the setup for the maven distribution.

You'll find some useful information here : http://www.apache.org/dev/release-signing.html.

To sum up :

  1. Install GNU Privacy Guard for your your platform and add it in your PATH.

  2. Create your key :

    $ gpg --gen-key

    Keep the default settings.

    Enter your personal information :

    It creates a key with the following user ID like this :

    FirstName LastName (CODE SIGNING KEY) <YourEMail @ apache.org>
  3. Export it :

    $ (gpg --list-sigs "FirstName LastName" && gpg --armor --export "FirstName LastName") > ~/MY_KEYS
  4. And append the result to the KEYS file stored in https://svn.apache.org/repos/asf/maven/project.

  5. To automatically sign your artifacts, you need to have the maven artifact 1.9 (at least) and if you have several keys you have to set the property "maven.artifact.gpg.keyname" to select the one you want to use.

For more general notes on making a release, please see the Releasing documentation in the User's Guide.

For more general notes on making a release, please see the Releasing documentation in the User's Guide.

Compared to a plugin or a component, there are a couple of additional steps when releasing a Maven distribution.