You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by da...@apache.org on 2014/06/25 09:22:46 UTC

git commit: [SCM-757] work around for project.basedir is not valid under maven 3 when run without a project ( ie mvn scm:checkout, scm:bootstrap, and scm:export)

Repository: maven-scm
Updated Branches:
  refs/heads/master cc0b8fdb4 -> 82b8f4bd3


[SCM-757] work around for project.basedir is not valid under maven 3
when run without a project ( ie mvn scm:checkout, scm:bootstrap, and
scm:export)

Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/82b8f4bd
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/82b8f4bd
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/82b8f4bd

Branch: refs/heads/master
Commit: 82b8f4bd3e3f61d2e98209e758c43afd41b987d8
Parents: cc0b8fd
Author: dantran <da...@gmail.com>
Authored: Wed Jun 25 00:22:22 2014 -0700
Committer: dantran <da...@gmail.com>
Committed: Wed Jun 25 00:22:22 2014 -0700

----------------------------------------------------------------------
 .../maven/scm/plugin/AbstractScmMojo.java       | 15 ++++++++----
 .../apache/maven/scm/plugin/CheckoutMojo.java   | 21 +++++++++-------
 .../org/apache/maven/scm/plugin/ExportMojo.java | 25 ++++++++++++--------
 3 files changed, 38 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/82b8f4bd/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
index 8c76df4..de2d18c 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
@@ -158,10 +158,10 @@ public abstract class AbstractScmMojo
      */
     @Parameter
     private Map<String,String> providerImplementations;
-    
+
     /**
      * Should distributed changes be pushed to the central repository?
-     * For many distributed SCMs like Git, a change like a commit 
+     * For many distributed SCMs like Git, a change like a commit
      * is only stored in your local copy of the repository.  Pushing
      * the change allows your to more easily share it with other users.
      *
@@ -244,6 +244,11 @@ public abstract class AbstractScmMojo
         return workingDirectory;
     }
 
+    public File getBasedir()
+    {
+        return this.basedir;
+    }
+
     public void setWorkingDirectory( File workingDirectory )
     {
         this.workingDirectory = workingDirectory;
@@ -277,7 +282,7 @@ public abstract class AbstractScmMojo
             repository = getScmManager().makeScmRepository( getConnectionUrl() );
 
             ScmProviderRepository providerRepo = repository.getProviderRepository();
-            
+
             providerRepo.setPushChanges( pushChanges );
 
             if ( !StringUtils.isEmpty( username ) )
@@ -470,7 +475,7 @@ public abstract class AbstractScmMojo
 
         throw new MojoExecutionException( "Unknown '" + versionType + "' version type." );
     }
-    
+
     protected void handleExcludesIncludesAfterCheckoutAndExport( File checkoutDirectory )
         throws MojoExecutionException
     {
@@ -495,7 +500,7 @@ public abstract class AbstractScmMojo
                 excludes.add( tokens[i] );
             }
         }
-        
+
         if ( includes.isEmpty() &&  excludes.isEmpty() )
         {
             return;

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/82b8f4bd/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
index 29156d6..df6b4fb 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
@@ -45,7 +45,7 @@ public class CheckoutMojo
      */
     @Parameter( property = "useExport", defaultValue = "false" )
     private boolean useExport;
-    
+
     /**
      * The directory to checkout the sources to for the bootstrap and checkout goals.
      */
@@ -91,6 +91,11 @@ public class CheckoutMojo
 
     protected File getCheckoutDirectory()
     {
+        if ( this.checkoutDirectory.getPath().contains( "${project.basedir}" ))
+        {
+            //project.basedir is not set under maven 3.x when run without a project
+            this.checkoutDirectory = new File( this.getBasedir(), "target/checkout");
+        }
         return this.checkoutDirectory;
     }
 
@@ -107,9 +112,9 @@ public class CheckoutMojo
             ScmRepository repository = getScmRepository();
 
             this.prepareOutputDirectory( getCheckoutDirectory() );
-            
+
             ScmResult result = null;
-            
+
             ScmFileSet fileSet = new ScmFileSet( getCheckoutDirectory().getAbsoluteFile() );
             if ( useExport )
             {
@@ -121,8 +126,8 @@ public class CheckoutMojo
             }
 
             checkResult( result );
-            
-           
+
+
             handleExcludesIncludesAfterCheckoutAndExport( this.checkoutDirectory );
 
             return result;
@@ -146,17 +151,17 @@ public class CheckoutMojo
         {
             throw new MojoExecutionException( "Cannot remove " + ouputDirectory );
         }
-        
+
         if ( !getCheckoutDirectory().mkdirs() )
         {
             throw new MojoExecutionException( "Cannot create " + ouputDirectory );
         }
     }
-    
+
     protected ScmResult getCheckoutResult()
     {
         return checkoutResult;
     }
-    
+
 
 }

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/82b8f4bd/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
----------------------------------------------------------------------
diff --git a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
index d194448..96b1ff8 100644
--- a/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
+++ b/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
@@ -6,9 +6,9 @@ package org.apache.maven.scm.plugin;
  * 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
@@ -29,7 +29,7 @@ import org.codehaus.plexus.util.FileUtils;
 
 /**
  * Get a fresh exported copy of the latest source from the configured scm url.
- * 
+ *
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  */
 @Mojo( name = "export", requiresProject = false )
@@ -53,13 +53,13 @@ public class ExportMojo
      */
     @Parameter( property = "exportDirectory", defaultValue = "${project.build.directory}/export", required = true )
     private File exportDirectory;
-    
+
     /**
      * Skip export if exportDirectory exists.
      */
     @Parameter( property = "skipExportIfExists", defaultValue = "false" )
     private boolean skipExportIfExists = false;
-    
+
 
     /** {@inheritDoc} */
     public void execute()
@@ -71,7 +71,7 @@ public class ExportMojo
         {
             return;
         }
-        
+
         export();
     }
 
@@ -88,6 +88,11 @@ public class ExportMojo
     protected void export()
         throws MojoExecutionException
     {
+        if ( this.exportDirectory.getPath().contains( "${project.basedir}" ))
+        {
+            //project.basedir is not set under maven 3.x when run without a project
+            this.exportDirectory = new File( this.getBasedir(), "target/export");
+        }
         try
         {
             ScmRepository repository = getScmRepository();
@@ -109,15 +114,15 @@ public class ExportMojo
             if ( !this.exportDirectory.mkdirs() )
             {
                 throw new MojoExecutionException( "Cannot create " + this.exportDirectory );
-            }                
-            
+            }
+
             ExportScmResult result = getScmManager().export( repository,
                                                              new ScmFileSet( this.exportDirectory.getAbsoluteFile() ),
                                                              getScmVersion( scmVersionType, scmVersion ) );
 
             checkResult( result );
-            
-            handleExcludesIncludesAfterCheckoutAndExport( this.exportDirectory );            
+
+            handleExcludesIncludesAfterCheckoutAndExport( this.exportDirectory );
         }
         catch ( ScmException e )
         {