| ------ |
| Releasing Projects |
| ------ |
| ------ |
| 2010-02-18 |
| ------ |
| |
| ~~ Licensed to the Apache Software Foundation (ASF) under one |
| ~~ or more contributor license agreements. See the NOTICE file |
| ~~ distributed with this work for additional information |
| ~~ regarding copyright ownership. The ASF licenses this file |
| ~~ to you under the Apache License, Version 2.0 (the |
| ~~ "License"); you may not use this file except in compliance |
| ~~ with the License. You may obtain a copy of the License at |
| ~~ |
| ~~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~~ |
| ~~ Unless required by applicable law or agreed to in writing, |
| ~~ software distributed under the License is distributed on an |
| ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~~ KIND, either express or implied. See the License for the |
| ~~ specific language governing permissions and limitations |
| ~~ under the License. |
| |
| Releasing Projects |
| |
| The release process has two steps, {{{./prepare.html}Prepare}} and {{{./perform.html}Perform}}. |
| |
| [[1]] First, it prepares your project for release by doing the following: |
| |
| * Checks that your project is in a "releasable" state. |
| |
| * Updates the POMs for the new development version. |
| |
| * Runs a test build. |
| |
| * Generates a tag for the release. |
| |
| * Generates the artifact to be deployed, such as a JAR file. |
| |
| * Generates the site and deploys it. |
| |
| * Commits the new POMs with the new development version. It will do the commit to the SCM |
| connection URL you specify (explained later). |
| |
| [] |
| |
| [[2]] Then the release management system performs the release by checking out a clean copy |
| of the tagged release and deploying the artifacts and site. |
| |
| [] |
| |
| * Modifying POM for Release |
| |
| The source code control system you use must be specified in your POM file in an <<<\<scm\>>>> entry |
| similar to the one shown here: |
| |
| +----------------------------------------------------------------------------------+ |
| <scm> |
| <connection> |
| scm:svn:http://svn.apache.org/repos/asf/maven/components/trunk |
| </connection> |
| <developerConnection> |
| scm:svn:https://svn.apache.org/repos/asf/maven/components/trunk |
| </developerConnection> |
| <url>http://svn.apache.org/viewcvs.cgi/maven/components/trunk</url> |
| </scm> |
| +---------------------------------------------------------------------------------+ |
| |
| To determine what to enter for your connection URL (the <<<\<connection\>>>> tag) go to the link |
| {{http://maven.apache.org/scm/scms-overview.html}} for a list of supported SCMs and click on your |
| source code control system to see the appropriate syntax for your particular software. |
| |
| In general the format for an SCM URL is: |
| <<< scm:<scm_provider><delimiter><provider_specific_part> >>> |
| |
| In the example above, the <<<scm_provider>>> is <<<svn>>> (Subversion). The <<<delimiter>>> is a colon. |
| And the rest of the line is the <<<provider_specific_part>>>. |
| |
| It is important to prepare the release just before performing the release. The reason these |
| processes have been separated into two steps is to allow the user to confirm that everything has been |
| set correctly before the actual release. If between the prepare and performing of the release there is |
| a change to the SCM tree, an error will occur causing the prepare process to restart. |
| |
| [] |
| |
| |
| * Releasing Projects with Flat Structure |
| |
| In order to release projects with flat structure in Continuum, the project must be checked out in a single directory. |
| You can do this by checking the "Checkout multi-module project in single directory" field when you add your Maven Two |
| project in Continuum. See {{{../managing_project/addProject.html}Add a Project}} for more details. |
| |
| Projects with flat structures are released in the same process described above. |
| |
| * Releasing projects in a distributed build |
| |
| Release will happen in the Build Agent where the last build of project occurred. |
| |
| To view on-going releases from different build agents, click the <<Releases>> button under the <<Distributed Builds>> menu. |
| |