2012-04-25 11 views
13

Con jOOQ, es posible que desee combinar el uso de jOOQ code generator with Maven y custom generator strategy. Parece que esto se puede hacer como tal (dejando de lado partes irrelevantes):¿Cómo usar una estrategia personalizada con el generador de código jOOQ y Maven?

<plugin> 
    <groupId>org.jooq</groupId> 
    <artifactId>jooq-codegen-maven</artifactId> 
    <version>2.2.2</version> 

    <!-- The plugin should hook into the generate goal --> 
    <executions> 
    <execution> 
     <goals> 
     <goal>generate</goal> 
     </goals> 
    </execution> 
    </executions> 

    <configuration> 
    <generator> 
     <name>org.jooq.util.DefaultGenerator</name> 
     <!-- But the custom strategy is not yet compiled --> 
     <strategy> 
     <name>com.example.MyStrategy</name> 
     </strategy> 
    </generator> 
    </configuration> 
</plugin> 

La configuración anterior representa el problema. El generador de código de jOOQ se engancha en el objetivo generado del ciclo de vida de Maven, que tiene lugar antes del objetivo de compilación del ciclo de vida. Para la generación de código, sin embargo, necesita una clase de estrategia personalizada precompilada, o obtendré un ClassNotFoundException. ¿Cómo se puede resolver esto con Maven? ¿Puedo compilar una sola clase antes de ejecutar el objetivo generate?

Respuesta

7

Una solución mucho mejor es dividir el proyecto en dos módulos. Uno contiene la estrategia y el otro el resto.

El uso de módulos, puede compilar la estrategia en un paso independiente y luego utilizar ese módulo en el plugin:

<plugin> 
    <groupId>org.jooq</groupId> 
    <artifactId>jooq-codegen-maven</artifactId> 
    <version>2.2.2</version> 

    ...your config goes here... 

    <dependencies> 
    list your strategy module here 
    </dependencies> 
</plugin> 
Cuestiones relacionadas