Skip to content

Instantly share code, notes, and snippets.

@chrislovecnm
Created November 8, 2011 21:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chrislovecnm/1349373 to your computer and use it in GitHub Desktop.
Save chrislovecnm/1349373 to your computer and use it in GitHub Desktop.
Mvn build release instructs from dsyer ~ ampq spring

Requirements:

  • Java 6;
  • Maven 2.2.1
  • (Optional) Ant 1.7.1;
  • If you are on Linux don't use Maven or Ant installed by root (file permission issues with mvn deploy - download it and install it as yourself).

Tagging

Before a release, a tag needs to be created and a final sanity check done. To do this, a tag is created using Maven and version numbers updated.

To save some time typing version labels, use this (replace version numbers as necessary):

$ mvn release:prepare -Dtag=X.X.X -DreleaseVersion=X.X.X -DdevelopmentVersion=X.X.X.BUILD-SNAPSHOT -DautoVersionSubmodules=true

You will be asked to confirm the release version and the new development version. Typically moving from X.X.X.BUILD-SNAPSHOT to a named release means the release tag is X.X.X.RELEASE and the development version is X.X.X+1.BUILD-SNAPSHOT.

Building and publishing JAR artifacts

In principle the publishing can be done by Maven release plugin:

$ mvn release:perform

this will deploy to S3 by default.

In practice we often need to tweak stuff and correct errors in the deployment, and for RELEASE versions we also need to publish to Maven Central.

To do an M*, RC* or RELEASE version you need to be in the tagged copy, so switch to the tag and create a branch

$ git branch -D release/latest
$ git checkout <version>
$ git checkout -b release/latest

Maven Deploy

Maven can be used to publish the Maven Central artifacts to S3 (e.g. in CI or a quick snapshot release to fix a bug for a user):

$ mvn -P upload clean deploy

There is a milestone profile for publishing a milestone and a central profile for publishing to Maven Central (via Sonatype).

Building and Publishing ZIP Artifacts

The ZIP artifacts are built by Maven and published via an ant script. They were already deployed if you followed the steps above (deploy using the upload profile). Verify this (after site has time to refresh) by looking for the files in [the community download page][CommunityDownloads].

To deploy to a local staging for test purposes use this recipe:

$ mvn -P staging,upload deploy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment