2010-05-26 39 views
12

sé que esto es probablemente mal visto por los amantes de maven, pero todo el directorio 'objetivo' es una pérdida de espacio en el contexto de nuestro programa y su implementación. tenemos otros procesos de compilación responsables de crear la implementación real y actualmente elimino manualmente el directorio de destino después de cada compilación maven, para que su contenido no interfiera con mis búsquedas de archivos, etc. ...eliminar el directorio 'destino' después de la compilación

hay una manera de eliminar este directorio automáticamente al final de una compilación/instalación maven?

gracias, p.

Respuesta

14

Utilice el experto-limpia-plugin como en este caso http://maven.apache.org/plugins/maven-clean-plugin/examples/delete_additional_files.html

<project> 


[...] 
    <build> 
<plugins> 
    <plugin> 
    <artifactId>maven-clean-plugin</artifactId> 
    <version>2.4.1</version> 
    <executions> 
     <execution> 
     <id>auto-clean</id> 
     <phase>install</phase> 
     <goals> 
      <goal>clean</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 
    </build> 
    [...] 
</project> 
+0

Esto ejecutará la limpieza al principio de la construcción y no al final. – khmarbaise

+1

@khmarbaise - He cambiado la fase para instalar y funciona incluso al final. Pero estoy llamando a mvn install. Para que un paquete mvn funcione, necesito usar la fase de maven-clean-plugin como paquete, y lo hace al final. – JoseK

+0

Solo tenga cuidado de no borrar antes de implementar o instalar la fase, el proyecto será inútil. – sal

5

Usted simplemente debe añadir el objetivo limpio para sus objetivos de maven al final.

mvn install clean 

El problema con la limpieza plugin es que si te gusta correr la limpieza al final de la construcción depende qué objetivo que llamó al principio. Por ejemplo, si llama al paquete mvn, necesita tener un post paquete de fase que no existe o si llamó a mvn install, tiene que tener una fase posterior a la instalación que tampoco existe.

+0

@khmarbaise - clean-plugin funciona con la fase de instalación/paquete incluso en el fin. no necesitas post-instalación/post-paquete. pero tiene que coincidir con la fase original llamada. – JoseK

3

La manera más fácil es simplemente agregar "limpiar" al final del comando de compilación normal. p.ej. mvn clean install clean.

2

si quieres j UST eliminaralgunos directorios en la carpeta de destino, usted tiene que crear un poco de construcción como esta.
esto, por ejemplo, elimina sólo todos los contenidos de las carpetas:

  • objetivo/desempaquetar
  • gen-external-apklibs

excludeDefaultDirectories permite n ot eliminar carpeta de destino completa.
Lo usé para limpiar la carpeta de destino antes del análisis de pelusa.

 <plugin> 
      <artifactId>maven-clean-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <id>Deleting all unnecessary files before lint analysis</id> 
        <phase>verify</phase> 
        <goals> 
         <goal>clean</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <excludeDefaultDirectories>true</excludeDefaultDirectories> 
       <filesets> 
        <fileset> 
         <directory>target/unpack</directory> 
         <followSymlinks>false</followSymlinks> 
         <excludes> 
          <exclude>*</exclude> 
         </excludes> 
        </fileset> 
        <fileset> 
         <directory>gen-external-apklibs</directory> 
         <followSymlinks>false</followSymlinks> 
         <excludes> 
          <exclude>*</exclude> 
         </excludes> 
        </fileset> 
       </filesets> 
       <verbose>true</verbose> 
      </configuration> 
     </plugin> 
Cuestiones relacionadas