Dear Wiki user, You have subscribed to a wiki page or wiki category on "Portals Wiki" for change notification.
The following page has been changed by AteDouma: http://wiki.apache.org/portals/FrontPage/HowtoUseNexusForRelease ------------------------------------------------------------------------------ /!\ Under Construction /!\ This page provides some additional notes how to use Nexus for performing a release. + + These notes are intended to be used together with the Apache Portals portals-pom-1.2 or later: http://svn.apache.org/repos/asf/portals/portals-pom/tags/portals-pom-1.2/pom.xml The primary source and instructions are provided here: http://maven.apache.org/developers/release/releasing.html @@ -79, +81 @@ </settings> }}} + * Make sure your root project pom.xml inherits directly or indirectly from the Apache Portals portals-pom version 1.2 or later + + * Make sure as the minimum to have the following profile defined in your root project pom.xml: + {{{ + <profiles> + <profile> + <id>apache-release</id> + <build> + <plugins> + <plugin> + <!-- only include this in top level project poms --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + </plugin> + </plugins> + </build> + </profile> + </profiles> + }}} + + = Step 1: Prepare your POMs for release = + + * Make sure there are no snapshots in the POMs to be released + + If you are staging multiple release candidates which are dependent, e.g project B-1.0-SNAPSHOT -> A-1.0-SNAPSHOT, + you will have to manually update B-1.0-SNAPSHOT -> A-1.0 before you can start releasing project B through Nexus. + + * Make sure the '''scm''' tag within the root pom.xml ''''exactly'''' matches the current SVN location of the pom.xml itself. + + * If you have a multi-project with nested modules, ensure they have either their own '''scm''' tag configured correctly too, or not defined at all. + + = Step 2: Publish a snapshot = + + * first make sure to start with a clean/pristine checkout of the project, run at least {{{mvn clean}}} + + * ''If you followed the advise in the '''main doc''' for the previous step by running ''{{{mvn release:prepare -DdryRun=true}}}'', make sure to run ''{{{mvn release:clean}}}'' first before continuing'' + + * '''{{{mvn deploy}}}''' + + If you experience an error during deployment like a HTTP 401 check your settings for the required server entries as outlined in the Prerequisites. + + * verify the deployment under Maven Snapshot repository on Apache (Nexus: Repositories->Snapshots) + + = Step 3: Prepare the release = + + * Make sure to start clean by running '''{{{mvn release:clean}}}''' + + * '''{{{mvn release:prepare}}}''' + + If you experience a BUILD FAILURE because of svn failing to commit with an error message like: ''{{{svn: The specified baseline is not the latest baseline, so it may not be checked out.}}}'': + + * when using the SVN EU mirror it might occur when the SVN server sync hasn't been completed yet, causing the SVN EU mirror to be slightly out-of-sync temporarily + + * try running '''{{{svn up}}}''' and '''{{{mvn release:prepare}}}''' one or more times again, it usually completes successfully after one or more retry. + + * if it keeps failing, you can restart from scratch by running '''{{{mvn release:rollback}}}''' first, see also: http://maven.apache.org/plugins/maven-release-plugin + + = Step 4: Stage the release = + + * '''{{{mvn release:perform}}}''' + + This will create a new temporary Nexus staging repository and upload to it, or append to it if you are combining multiple release candidates together. + This temporary staging repository, while still open (see next step) will only be visible and accessible by yourself until closed (next step). + Once the staging repository is closed, you can no longer add more release candidates to it. + + See http://www.sonatype.com/books/nexus-book/reference/staging.html for further details. + + = Step 5: close the staging repository = + + Follow the instructions as described in the '''''main doc''''' once you've released '''all''' candidates you intended to, otherwise repeat the above steps for additional release candidates first. + + The current '''''main doc''''' describe how to '''close''' your staging repository by using right click on the status field and choose '''{{{Finish}}}'''. However, for the current Nexus installation + this action menu item now is called '''{{{Close}}}'''. + + Once the staging repository is closed, its repository path becomes public accessible, so you can use that as reference in the VOTE email to send out in the next steps. + + = Step 6 and later = + + Just follow the instructions as provided in the '''''main doc''''' +
