You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Saurav Sarkar <sa...@gmail.com> on 2014/09/13 13:52:04 UTC

Maven clean plugin not deleting file

Hi All,

I have two files in my directory like this:

   - a.b.so
   - a.so

I want to delete only a.b.so.

So here is my Maven clean plugin entry in my pom.xml file:

<plugin>
<artifactId>maven-clean-plugin</artifactId>
<executions>
  <execution>
    <id>auto-clean</id>
    <phase>prepare-package</phase>
    <goals>
      <goal>clean</goal>
    </goals>
    <configuration>
    <excludeDefaultDirectories>true</excludeDefaultDirectories>
     <filesets>
        <fileset>
      <directory>${project.build.directory}/libs/x86</directory>
      <includes>
        <include>*.so</include>
      </includes>
      <excludes>
       <exclude>a.so</exclude>
      <excludes>
       <followSymlinks>false</followSymlinks>
    </fileset>
      </filesets>
      <verbose>true</verbose>
    </configuration>
  </execution>
</executions>

Just for some backgorund of this, file a.b.so gets downloaded as a
dependency then it gets renamed into a.so just before i execute the above
entry. I copy file using maven depedency plugin. I don't know whether this
affects the not deletion of a.b.so later on or not.

In turn it always delete a.so. Even I tried including **/*, but it deletes
a.so every time.

It never deletes a.b.so.

cheers,

Saurav

RE: Maven clean plugin not deleting file

Posted by Martin Gainty <mg...@hotmail.com>.


> Date: Sat, 13 Sep 2014 18:30:10 +0530
> Subject: Re: Maven clean plugin not deleting file
> From: saurav.sarkar1@gmail.com
> To: users@maven.apache.org
> 
> Hi Martin,
> 
> Thanks for the reply.
> directory is properly mentioned because a.so is getting deleted.
> 
> Please note a.b.so has been downloaded a dependency and has been put to
> libs directory.
> 
> Best Regards,
> Saurav
> 
> On Sat, Sep 13, 2014 at 6:06 PM, Martin Gainty <mg...@hotmail.com> wrote:
> 
> > I need to takeoff soon so unfortunately I cannot put any time into
> > investigating until maybe tonite
> > but Here is the CleanMojo code:
> >
> > execute()
> > {
> > </snip>
> >      try
> >         {
> >             File[] directories = getDirectories();
> >             for ( int i = 0; i < directories.length; i++ )
> >             {
> >                 File directory = directories[i];
> >                 if ( directory != null )
> >                 {
> >                     cleaner.delete( directory, null, followSymLinks,
> > failOnError, retryOnError );
> > //can we assume the directory remains intact?
> >                 }
> >             }
> >
> >             if ( filesets != null )
> >             {
> >                 for ( int i = 0; i < filesets.length; i++ )
> >                 {
> >                     Fileset fileset = filesets[i];
> >                     if ( fileset.getDirectory() == null )
> >                     {
> >                         throw new MojoExecutionException( "Missing base
> > directory for " + fileset );
> >                     }
> >                     GlobSelector selector =
> >                         new GlobSelector( fileset.getIncludes(),
> > fileset.getExcludes(), fileset.isUseDefaultExcludes() );
> >                     cleaner.delete( fileset.getDirectory(), selector,
> > fileset.isFollowSymlinks(), failOnError,
> >                                     retryOnError );
> >                 }
> >             }
> >         }
> >         catch ( IOException e )
> >         {
> >             throw new MojoExecutionException( "Failed to clean project: "
> > + e.getMessage(), e );
> >         }
> >
> > Fileset.java
> > public class Fileset
> > {
> >
> >     private File directory;
> >     public File getDirectory()
> >     {
> >         return directory;
> >     }
> >
> > at first blush maybe you didnt specify directory?
> >
> > are there any other messages?
> >
> > Martin
> >
> >
> >
> > > Date: Sat, 13 Sep 2014 17:22:04 +0530
> > > Subject: Maven clean plugin not deleting file
> > > From: saurav.sarkar1@gmail.com
> > > To: users@maven.apache.org
> > >
> > > Hi All,
> > >
> > > I have two files in my directory like this:
> > >
> > >    - a.b.so
> > >    - a.so
> > >
> > > I want to delete only a.b.so.
> > >
> > > So here is my Maven clean plugin entry in my pom.xml file:
> > >
> > > <plugin>
> > > <artifactId>maven-clean-plugin</artifactId>
> > > <executions>
> > >   <execution>
> > >     <id>auto-clean</id>
> > >     <phase>prepare-package</phase>
> > >     <goals>
> > >       <goal>clean</goal>
> > >     </goals>
> > >     <configuration>
> > >     <excludeDefaultDirectories>true</excludeDefaultDirectories>
> > >      <filesets>
> > >         <fileset>
> > >       <directory>${project.build.directory}/libs/x86</directory>
> > >       <includes>

MG>replace wildcard package/filename *.so with more specific filename include as seen here:
> > >         <!-- include>*.so</include -->
<include>a.b.so</include>
<include>b*.so</include>
<include>c*.so</include>
<include>d*.so</include>
<include>e*.so</include>
<include>f*.so</include>
<include>g*.so</include>
<include>h*.so</include>
<include>i*.so</include>
<include>j*.so</include>
<include>k*.so</include>
<include>l*.so</include>
<include>m*.so</include>
<include>n*.so</include>
<include>o*.so</include>
<include>p*.so</include>
<include>q*.so</include>
<include>r*.so</include>
<include>s*.so</include>
<include>t*.so</include>
<include>u*.so</include>
<include>v*.so</include>
<include>w*.so</include>
<include>x*.so</include>
<include>y*.so</include>
<include>z*.so</include>
MG>end

> > >       </includes>
> > >       <excludes>
> > >        <exclude>a.so</exclude>
> > >       <excludes>
> > >        <followSymlinks>false</followSymlinks>

MG>since we dont know what constitutes useDefaultExcludes .. we should exclude this unknown entity
<useDefaultExcludes>true</useDefaultExcludes>
MG>end

> > >     </fileset>
> > >       </filesets>
> > >       <verbose>true</verbose>
> > >     </configuration>
> > >   </execution>
> > > </executions>
> > >
> > > Just for some backgorund of this, file a.b.so gets downloaded as a
> > > dependency then it gets renamed into a.so just before i execute the above
> > > entry. I copy file using maven depedency plugin. I don't know whether
> > this
> > > affects the not deletion of a.b.so later on or not.
> > >
> > > In turn it always delete a.so. Even I tried including **/*, but it
> > deletes a.so every time.
MG>this should be left alone and not deleted
> > >
> > > It never deletes a.b.so.
> > >
> > > cheers,
> > >
> > > Saurav
> >
> >
 		 	   		  

Re: Maven clean plugin not deleting file

Posted by Saurav Sarkar <sa...@gmail.com>.
Hi Martin,

Thanks for the reply.
directory is properly mentioned because a.so is getting deleted.

Please note a.b.so has been downloaded a dependency and has been put to
libs directory.

Best Regards,
Saurav

On Sat, Sep 13, 2014 at 6:06 PM, Martin Gainty <mg...@hotmail.com> wrote:

> I need to takeoff soon so unfortunately I cannot put any time into
> investigating until maybe tonite
> but Here is the CleanMojo code:
>
> execute()
> {
> </snip>
>      try
>         {
>             File[] directories = getDirectories();
>             for ( int i = 0; i < directories.length; i++ )
>             {
>                 File directory = directories[i];
>                 if ( directory != null )
>                 {
>                     cleaner.delete( directory, null, followSymLinks,
> failOnError, retryOnError );
> //can we assume the directory remains intact?
>                 }
>             }
>
>             if ( filesets != null )
>             {
>                 for ( int i = 0; i < filesets.length; i++ )
>                 {
>                     Fileset fileset = filesets[i];
>                     if ( fileset.getDirectory() == null )
>                     {
>                         throw new MojoExecutionException( "Missing base
> directory for " + fileset );
>                     }
>                     GlobSelector selector =
>                         new GlobSelector( fileset.getIncludes(),
> fileset.getExcludes(), fileset.isUseDefaultExcludes() );
>                     cleaner.delete( fileset.getDirectory(), selector,
> fileset.isFollowSymlinks(), failOnError,
>                                     retryOnError );
>                 }
>             }
>         }
>         catch ( IOException e )
>         {
>             throw new MojoExecutionException( "Failed to clean project: "
> + e.getMessage(), e );
>         }
>
> Fileset.java
> public class Fileset
> {
>
>     private File directory;
>     public File getDirectory()
>     {
>         return directory;
>     }
>
> at first blush maybe you didnt specify directory?
>
> are there any other messages?
>
> Martin
>
>
>
> > Date: Sat, 13 Sep 2014 17:22:04 +0530
> > Subject: Maven clean plugin not deleting file
> > From: saurav.sarkar1@gmail.com
> > To: users@maven.apache.org
> >
> > Hi All,
> >
> > I have two files in my directory like this:
> >
> >    - a.b.so
> >    - a.so
> >
> > I want to delete only a.b.so.
> >
> > So here is my Maven clean plugin entry in my pom.xml file:
> >
> > <plugin>
> > <artifactId>maven-clean-plugin</artifactId>
> > <executions>
> >   <execution>
> >     <id>auto-clean</id>
> >     <phase>prepare-package</phase>
> >     <goals>
> >       <goal>clean</goal>
> >     </goals>
> >     <configuration>
> >     <excludeDefaultDirectories>true</excludeDefaultDirectories>
> >      <filesets>
> >         <fileset>
> >       <directory>${project.build.directory}/libs/x86</directory>
> >       <includes>
> >         <include>*.so</include>
> >       </includes>
> >       <excludes>
> >        <exclude>a.so</exclude>
> >       <excludes>
> >        <followSymlinks>false</followSymlinks>
> >     </fileset>
> >       </filesets>
> >       <verbose>true</verbose>
> >     </configuration>
> >   </execution>
> > </executions>
> >
> > Just for some backgorund of this, file a.b.so gets downloaded as a
> > dependency then it gets renamed into a.so just before i execute the above
> > entry. I copy file using maven depedency plugin. I don't know whether
> this
> > affects the not deletion of a.b.so later on or not.
> >
> > In turn it always delete a.so. Even I tried including **/*, but it
> deletes
> > a.so every time.
> >
> > It never deletes a.b.so.
> >
> > cheers,
> >
> > Saurav
>
>

RE: Maven clean plugin not deleting file

Posted by Martin Gainty <mg...@hotmail.com>.
I need to takeoff soon so unfortunately I cannot put any time into investigating until maybe tonite
but Here is the CleanMojo code:

execute()
{
</snip>
     try
        {
            File[] directories = getDirectories();
            for ( int i = 0; i < directories.length; i++ )
            {
                File directory = directories[i];
                if ( directory != null )
                {
                    cleaner.delete( directory, null, followSymLinks, failOnError, retryOnError );
//can we assume the directory remains intact?
                }
            }

            if ( filesets != null )
            {
                for ( int i = 0; i < filesets.length; i++ )
                {
                    Fileset fileset = filesets[i];
                    if ( fileset.getDirectory() == null )
                    {
                        throw new MojoExecutionException( "Missing base directory for " + fileset );
                    }
                    GlobSelector selector =
                        new GlobSelector( fileset.getIncludes(), fileset.getExcludes(), fileset.isUseDefaultExcludes() );
                    cleaner.delete( fileset.getDirectory(), selector, fileset.isFollowSymlinks(), failOnError,
                                    retryOnError );
                }
            }
        }
        catch ( IOException e )
        {
            throw new MojoExecutionException( "Failed to clean project: " + e.getMessage(), e );
        }

Fileset.java
public class Fileset
{

    private File directory;
    public File getDirectory()
    {
        return directory;
    }

at first blush maybe you didnt specify directory?

are there any other messages?

Martin 



> Date: Sat, 13 Sep 2014 17:22:04 +0530
> Subject: Maven clean plugin not deleting file
> From: saurav.sarkar1@gmail.com
> To: users@maven.apache.org
> 
> Hi All,
> 
> I have two files in my directory like this:
> 
>    - a.b.so
>    - a.so
> 
> I want to delete only a.b.so.
> 
> So here is my Maven clean plugin entry in my pom.xml file:
> 
> <plugin>
> <artifactId>maven-clean-plugin</artifactId>
> <executions>
>   <execution>
>     <id>auto-clean</id>
>     <phase>prepare-package</phase>
>     <goals>
>       <goal>clean</goal>
>     </goals>
>     <configuration>
>     <excludeDefaultDirectories>true</excludeDefaultDirectories>
>      <filesets>
>         <fileset>
>       <directory>${project.build.directory}/libs/x86</directory>
>       <includes>
>         <include>*.so</include>
>       </includes>
>       <excludes>
>        <exclude>a.so</exclude>
>       <excludes>
>        <followSymlinks>false</followSymlinks>
>     </fileset>
>       </filesets>
>       <verbose>true</verbose>
>     </configuration>
>   </execution>
> </executions>
> 
> Just for some backgorund of this, file a.b.so gets downloaded as a
> dependency then it gets renamed into a.so just before i execute the above
> entry. I copy file using maven depedency plugin. I don't know whether this
> affects the not deletion of a.b.so later on or not.
> 
> In turn it always delete a.so. Even I tried including **/*, but it deletes
> a.so every time.
> 
> It never deletes a.b.so.
> 
> cheers,
> 
> Saurav