Author: vsiveton
Date: Wed Nov 14 05:24:50 2007
New Revision: 594869

URL: http://svn.apache.org/viewvc?rev=594869&view=rev
Log:
MCLEAN-27: fileset directory does not work as expected when cleaning "modules" 
in sub-directories

o adds the subproject basedir in the fileset directory
o updated documentation

Modified:
    maven/plugins/trunk/maven-clean-plugin/pom.xml
    
maven/plugins/trunk/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanMojo.java
    
maven/plugins/trunk/maven-clean-plugin/src/site/apt/examples/delete_additional_files.apt

Modified: maven/plugins/trunk/maven-clean-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-clean-plugin/pom.xml?rev=594869&r1=594868&r2=594869&view=diff
==============================================================================
--- maven/plugins/trunk/maven-clean-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-clean-plugin/pom.xml Wed Nov 14 05:24:50 2007
@@ -45,6 +45,11 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.maven</groupId>
+      <artifactId>maven-project</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-api</artifactId>
       <version>2.0</version>
     </dependency>

Modified: 
maven/plugins/trunk/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanMojo.java?rev=594869&r1=594868&r2=594869&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanMojo.java
 Wed Nov 14 05:24:50 2007
@@ -21,8 +21,10 @@
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.model.fileset.FileSet;
 import org.apache.maven.shared.model.fileset.util.FileSetManager;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
 import java.io.IOException;
@@ -53,6 +55,16 @@
     extends AbstractMojo
 {
     /**
+     * The Maven Project Object
+     *
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     * @since 2.2
+     */
+    protected MavenProject project;
+
+    /**
      * This is where build results go.
      *
      * @parameter expression="${project.build.directory}"
@@ -193,6 +205,17 @@
                 try
                 {
                     getLog().info( "Deleting " + fileset );
+
+                    if ( !project.isExecutionRoot() )
+                    {
+                        String projectBasedir = StringUtils.replace( 
project.getBasedir().getAbsolutePath(), "\\", "/" );
+                        String filesetDir = StringUtils.replace( 
fileset.getDirectory(), "\\", "/" );
+
+                        if ( filesetDir.indexOf( projectBasedir ) == -1 )
+                        {
+                            fileset.setDirectory( projectBasedir + "/" + 
filesetDir );
+                        }
+                    }
 
                     fileSetManager.delete( fileset );
                 }

Modified: 
maven/plugins/trunk/maven-clean-plugin/src/site/apt/examples/delete_additional_files.apt
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-clean-plugin/src/site/apt/examples/delete_additional_files.apt?rev=594869&r1=594868&r2=594869&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-clean-plugin/src/site/apt/examples/delete_additional_files.apt
 (original)
+++ 
maven/plugins/trunk/maven-clean-plugin/src/site/apt/examples/delete_additional_files.apt
 Wed Nov 14 05:24:50 2007
@@ -4,7 +4,8 @@
  Mike Perham
  <[EMAIL PROTECTED]>
  ------
- June 20th, 2006
+ November 2007
+ ------
 
 ~~ Licensed to the Apache Software Foundation (ASF) under one
 ~~ or more contributor license agreements.  See the NOTICE file
@@ -56,3 +57,18 @@
   [...]
 </build>
 +---------
+
+ <<Note:>> The <<<directory>>> in the <<<fileset>>> is a relative path inside 
a project, in other words,
+
++--------
+  <directory>some/relative/path</directory>
++--------
+
+ is equivalent to:
+
++--------
+  <directory>${basedir}/some/relative/path</directory>
++--------
+
+ You could also define file set rules in a parent POM. In this case, the clean 
plugin adds the subproject
+ basedir to the defined relative path.


Reply via email to