2011-03-14 27 views
8

Estoy interesado en escribir un procesador de anotación para el complemento maven-processor-plugin. Soy relativamente nuevo para Maven.Escribiendo un procesador de anotación para maven-processor-plugin

¿En qué parte de la ruta del proyecto debe ir el código fuente del procesador Java (por ejemplo: src/main/java/...) para que se compile apropiadamente, pero no termine como parte de mi archivo JAR artefacto?

Respuesta

9

La manera más fácil es mantener su procesador de anotación en un proyecto separado que incluya como dependencia.

Si eso no funciona para usted, utilice esta configuración

plugin del compilador:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <source>1.5</source> 
     <target>1.5</target> 
    </configuration> 
    <inherited>true</inherited> 
    <executions> 
     <execution> 
      <id>default-compile</id> 
      <inherited>true</inherited> 
      <configuration> 
       <!-- limit first compilation run to processor --> 
       <includes>path/to/processor</includes> 
      </configuration> 
     </execution> 
     <execution> 
      <id>after-processing</id> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      <inherited>false</inherited> 
      <configuration> 
       <excludes>path/to/processor</excludes> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Procesador Plugin:

<plugin> 
    <groupId>org.bsc.maven</groupId> 
    <artifactId>maven-processor-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>process</id> 
      <goals> 
       <goal>process</goal> 
      </goals> 
      <phase>compile</phase> 
      <configuration> 
       <processors> 
        <processor>com.yourcompany.YourProcessor</processor> 
       </processors> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

(Tenga en cuenta que esto debe ser ejecutado entre las dos ejecuciones de compilación, por lo que es esencial que coloque este código en el pom. xml después de la configuración maven-compilador-plugin anteriormente)

Jar Plugin:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <configuration> 
     <excludes>path/to/processor</excludes> 
    </configuration> 
    <inherited>true</inherited> 
</plugin> 
Cuestiones relacionadas