2011-04-20 9 views
9

He escrito un plugin que genera un archivo en target/generated-sources /. Este plugin solo tiene un mojo. Este mojo se declara con la siguiente:Cómo definir un mojo predeterminado para un plugin maven

/** 
* @goal convertsql 
* @phase generate-sources 
* @requiresProject 
*/ 
public class ConverterMojo extends AbstractMojo { 

En el proyecto, quiero usar el plugin pero no funciona si no especifico la etiqueta ejecuciones:

<executions> 
    <execution> 
     <id>convert</id> 
     <goals><goal>convertsql</goal></goals> 
     <phase>generate-sources</phase> 
    </execution> 
</executions> 

lo haría gustaría sólo para configurar la extensión de esta manera:

<plugin> 
    <groupId>com.my.plugins</groupId> 
    <artifactId>sqlconverter</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <configuration> 
     <sourceFile>src/main/resources/sql/schema_oracle.sql</sourceFile> 
    </configuration> 
</plugin> 

¿es posible especificar el mojo por defecto para mi plugin? El objetivo y la fase predeterminados se definen en el mojo ... Quiero decir, cuando uso el plugin jar, no tengo que decir el objetivo que quiero ejecutar, en qué fase ... es automático.

Gracias!

+0

¿Cómo eso hace que parezca POM para su Plugin? – khmarbaise

Respuesta

1

Necesita agregar un archivo META-INF/plexus/components.xml a su complemento y establecer <extensions>true</extensions> en su bloque de complementos.

Ver 11.6.3. Overriding the Default Lifecycle del libro Maven para referencia

+0

Gracias, lo he intentado con lifecycle.xml, components.xml, no puedo ponerlo en funcionamiento ... Olvidé la idea, pondré la configuración en el pom. –

+0

@ Jerome Yo tampoco lo hice yo mismo. Acabo de citar los documentos :-) –

Cuestiones relacionadas