You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ni...@apache.org on 2008/01/10 14:29:28 UTC

svn commit: r610784 - in /maven/release/trunk/maven-release-plugin/src: main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java site/apt/examples/perform-release.apt

Author: nicolas
Date: Thu Jan 10 05:29:27 2008
New Revision: 610784

URL: http://svn.apache.org/viewvc?rev=610784&view=rev
Log:
[MRELEASE-313] parameter to set profiles to enable on forked maven instance ran by release:perform

Modified:
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
    maven/release/trunk/maven-release-plugin/src/site/apt/examples/perform-release.apt

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java?rev=610784&r1=610783&r2=610784&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java Thu Jan 10 05:29:27 2008
@@ -105,7 +105,8 @@
      * @parameter expression="${arguments}" alias="prepareVerifyArgs"
      */
     private String arguments;
-
+		
+	
     /**
      * The file name of the POM to execute any goals against.
      *
@@ -172,36 +173,54 @@
         descriptor.setWorkingDirectory( basedir.getAbsolutePath() );
 
         descriptor.setPomFileName( pomFileName );
+		
+		List profiles = project.getActiveProfiles();
 
-        List profiles = project.getActiveProfiles();
-
-        String arguments = this.arguments;
-        if ( profiles != null && !profiles.isEmpty() )
-        {
-            if ( !StringUtils.isEmpty( arguments ) )
-            {
-                arguments += " -P ";
-            }
-            else
-            {
-                arguments = "-P ";
-            }
-
-            for ( Iterator it = profiles.iterator(); it.hasNext(); )
-            {
-                Profile profile = (Profile) it.next();
-
-                arguments += profile.getId();
-                if ( it.hasNext() )
-                {
-                    arguments += ",";
-                }
-            }
-        }
+		String arguments = this.arguments;
+		if ( profiles != null && !profiles.isEmpty() )
+		{
+			if ( !StringUtils.isEmpty( arguments ) )
+			{
+				arguments += " -P ";
+			}
+			else
+			{
+				arguments = "-P ";
+			}
+
+			for ( Iterator it = profiles.iterator(); it.hasNext(); )
+			{
+				Profile profile = (Profile) it.next();
+
+				arguments += profile.getId();
+				if ( it.hasNext() )
+				{
+					arguments += ",";
+				}
+			}
+
+			String additionalProfiles = getAdditionalProfiles();
+		    if ( additionalProfiles != null )
+		    {
+			    if ( ! profiles.isEmpty() )
+				{
+				    arguments += ",";
+				}
+			    arguments += additionalProfiles;
+			}
+		}
         descriptor.setAdditionalArguments( arguments );
 
         return descriptor;
     }
+	
+	/**
+	 * @return additional profiles to enable during release
+	 */
+	protected String getAdditionalProfiles()
+	{
+		return null;
+	}		
 
     void setReleaseManager( ReleaseManager releaseManager )
     {

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java?rev=610784&r1=610783&r2=610784&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java Thu Jan 10 05:29:27 2008
@@ -51,6 +51,14 @@
      */
     private String goals;
 
+	/**
+     * Comma separated profiles to enable on deployment, in addition to active profiles 
+	 * for project execution.
+     *
+     * @parameter
+     */
+    private String releaseProfiles;
+	
     /**
      * The checkout directory.
      *
@@ -76,6 +84,11 @@
      */
     private boolean useReleaseProfile;
 
+	protected String getAdditionalProfiles()
+	{
+		return releaseProfiles;
+	}
+	
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {

Modified: maven/release/trunk/maven-release-plugin/src/site/apt/examples/perform-release.apt
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/site/apt/examples/perform-release.apt?rev=610784&r1=610783&r2=610784&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/site/apt/examples/perform-release.apt (original)
+++ maven/release/trunk/maven-release-plugin/src/site/apt/examples/perform-release.apt Thu Jan 10 05:29:27 2008
@@ -45,4 +45,25 @@
 mvn release:perform -DconnectionUrl=scm:svn:https://svn.apache.org/repos/asf/maven/plugins/tags/maven-release-plugin-2.0
 -------
 
+  release:perform will fork a new maven instance to build the checked-out project. This new maven instance will use the 
+  same system configuration and maven profiles used by the one running the release:perform goal. 
+  
+  It is possible to
+  force some profiles to get enabled during release (for example to enable time-consummung tasks that are only relevant
+  at release-time) by setting a coma separated list of profiles names in the releaseProfiles parameter. The goals and
+  profiles required to release the project can then be configured in the POM :
+  
+-------
+  <plugin>
+        <artifactId>maven-release-plugin</artifactId>
+        <configuration>
+			<!--
+			  During release:perform, enable the "release" profile
+			  -->
+			<releaseProfiles>release</releaseProfiles>
+			<goals>deploy assembly:assembly</goals>
+		</configuration>
+  </plugin>
+-------
+
   After the release is complete, the <<<release.properties>>> and other release files will be removed from the checkout.