2011-03-02 13 views
10

Estaba revisando un libro que explica cómo anular el ciclo de vida 'predeterminado' de Maven.Anulando el ciclo de vida 'limpio' en Maven

Dice: Para definir un nuevo ciclo de vida para un tipo de paquete, deberá configurar un componente LifecycleMapping en Plexus. En su proyecto de complemento, cree un META-INF/plexus/components.xml bajo src/main/resources. En components.xml agrega el contenido como se muestra a continuación, y listo. Con la configuración siguiente, puedo personalizar el ciclo de vida predeterminado para el tipo de paquete 'jar'. Ahora si ejecuto
$ mvn paquete
Corre directamente ejecuta la fase 'paquete' omitiendo todas las demás fases del ciclo de vida predeterminado y ejecuta el objetivo 'eco' de 'maven-zip-plugin'.

<component-set> 
    <components> 
     <component> 
      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role> 
      <role-hint>zip</role-hint> 
      <implementation> 
       org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping 
      </implementation> 
      <configuration> 
       <phases> 
        <package>org.sonatype.mavenbook.plugins:maven-zip-plugin:echo 
        </package> 
       </phases> 
      </configuration> 
     </component> 
    </components> 
</component-set> 

Mi pregunta es: ¿Cómo puedo personalizar el ciclo de vida 'clean'. Por ejemplo, supongamos que cuando alguien tipos
$ mvn limpias
En lugar de correr limpio: limpio que ejecutará objetivo 'limpia' de 'experto-limpia-plugin' plug-in, que querían ejecutar meta 'customClean' de 'customPlugin '.

Respuesta

18

Por lo que usted describe, es más fácil evitar que maven-clean-plugin se ejecute durante la fase clean, y en su lugar, conectar customPlugin a la fase clean. Esto es más simple que cortocircuitar todo el ciclo de vida, y mantiene todas tus configuraciones maven en tu pom.

1 Evitar la experta-limpia-plugin

<plugin> 
    <artifactId>maven-clean-plugin</artifactId> 
    <version>2.4.1</version> 
    <configuration> 
     <skip>true</skip> 
    </configuration> 
</plugin> 

2 adjuntar su propio plugin para la fase de limpieza

<plugin> 
    <artifactId>maven-customPlugin-plugin</artifactId> 
    <version>customPlugin-version</version> 
    <executions> 
     <execution> 
      <id>customised-clean</id> 
      <goals> 
       <goal>customClean</goal> 
      </goals> 
      <phase>clean</phase> 
     </execution> 
    </executions> 
</plugin> 
+0

Esa es una solución mucho más elegante – DaShaun

+0

Sí .. esto es solución más sencilla para mi problema. – Vicky

Cuestiones relacionadas