----- Releasing ----- The Maven Team ----- Releasing The release plugin provides some basic functionality for making releases, and updating the project SCM accordingly. A release is performed in 2 steps: [[1]] Preparing the release. [[1]] Performing the release. Preparing the release The <<>> goal will: [[1]] Verify that there are no uncommitted changes in the checkout [[1]] Prompt for a desired version and tag name [[1]] Modify the pom.xml [[1]] Tag the entire source tree with the new tag name ----- m2 release:prepare -DtagBase=svn+ssh://svn.codehaus.org/home/projects/plexus/scm/tags ----- When this operation is over, your source control has the released code tagged and ready to deploy. Performing the release ----- m2 release:perform -DtagBase=svn+ssh://svn.codehaus.org/home/projects/plexus/scm ----- ~~ ----- ~~ o had to update each component manually to change the version ~~ o had to change the depMan element in the top-level POM ~~ both tedious and error prone ~~ o had to change the assembly file name ~~ o had to change the webpapp file name ~~ sign the release ----- #!/bin/sh rel=$1 if [ -z "$rel" ]; then echo usage: $0 release exit 1 fi exts="tar.gz tar.bz2 zip" if [ -f "$rel.exe" ]; then exts="$exts exe" fi for i in $exts; do md5sum $rel.$i | sed 's/ .*$//g' >$rel.$i.md5; done for i in $exts; do gpg --armor --output $rel.$i.asc --detach-sig $rel.$i; done ----- ~~ o deploy to /www/www.apache.org/dist/maven/binaries ~~ o even though we have said each module needs to specify its own version that ~~ is really a pita. maybe there is a better way we can deal with that.