Fetching contributors…
Cannot retrieve contributors at this time
94 lines (61 sloc) 3.37 KB

Build and Release of Spring Batch Admin

Should be relatively straightforward


  • 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).


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,dist clean pre-site 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.

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

$ mvn -P staging,upload,dist pre-site deploy

Building the Website

$ export MAVEN_OPTS=-Xmx512m 
$ mvn clean pre-site site post-site -P release,dist
$ mvn site:deploy -P dist,release

The last step sends the result to the .org site. Use mvn site:deploy -P dist,staging to test the result before you deploy for real (it puts it in target/staging).

Maven Central Deployment

For a full release (not milestones) we also send artifacts to Maven Central via a pickup directory on Sonatypes OSS repository. So do this:

$ mvn -P central,dist -DskipTests deploy

You need an account with Sonatype and some GPG setup (see Sonatype for details). The account details need to be added to your settings.xml.

If you make a mistake with the jars, you can re-deploy to the Sonatype staging area by doing the deploy command again, but once it is released they are in Maven Central and they never come out again.