Author: aramirez
Date: Tue Feb 28 22:51:56 2006
New Revision: 381932

URL: http://svn.apache.org/viewcvs?rev=381932&view=rev
Log:
PR: MASSEMBLY-71
Submitted By: Gary Murphy
Reviewed By: Allan Ramirez

Added a parameter that can configure archiveBaseDirectory

Modified:
    
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java

Modified: 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java?rev=381932&r1=381931&r2=381932&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AbstractAssemblyMojo.java
 Tue Feb 28 22:51:56 2006
@@ -90,6 +90,16 @@
      * @parameter
      */
     private String[] descriptorRefs;
+    
+    /**
+     * This is the base directory from which archive files are created.
+     * This base directory pre-pended to any <code>&lt;directory&gt;</code>
+     * specifications in the assembly descriptor.  This is an optional
+     * parameter
+     * 
+     * @parameter
+     */
+    private File archiveBaseDirectory;
 
     /**
      * Predefined Assembly Descriptor Id's.  You can select bin, 
jar-with-dependencies, or src.
@@ -709,7 +719,24 @@
 
             String[] excludes = (String[]) excludesList.toArray( 
EMPTY_STRING_ARRAY );
 
-            File archiveBaseDir = new File( directory );
+            File archiveBaseDir;
+            if ( archiveBaseDirectory == null)
+            {
+                archiveBaseDir = new File( directory );    
+            }
+            else
+            {
+                if (! archiveBaseDirectory.exists())
+                {
+                    throw new IOException("The archive base directory 
'"+archiveBaseDirectory.getAbsolutePath()+"' does not exist");
+                }
+                if (! archiveBaseDirectory.isDirectory())
+                {
+                    throw new IOException("The archive base directory 
'"+archiveBaseDirectory.getAbsolutePath()+"' exists, but it is not a 
directory");
+                }
+                archiveBaseDir = new File( archiveBaseDirectory, directory);   
             
+            }
+            getLog().debug("The archive base directory is 
'"+archiveBaseDir.getAbsolutePath()+"'");            
 
             if ( ! archiveBaseDir.isAbsolute() )
             {
@@ -722,7 +749,7 @@
 
                 archiveBaseDir = tmpDir;
             }
-
+            getLog().debug("Archive base directory: 
'"+archiveBaseDir.getAbsolutePath()+"'");
             addDirectory( archiver, archiveBaseDir, output, includes, 
excludesList );
         }
     }


Reply via email to