2015-08-04 10 views
7

Come utilizzare Lombok quando il processore di annotazione JPAMetaModelEntityProcessor è attivato nella generazione di maven.Come codificare i processori lombok e JPAMetalModel con Maven

Maven config:

[...] 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <compilerArguments> 
        <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>org.projectlombok</groupId> 
     <artifactId>lombok</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.0-api</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-jpamodelgen</artifactId> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 
[...] 

Durante il processo di generazione (mvn installazione pulita), oggetti metamodello sono generati correttamente, ma sembra che il processore annotazione Lombok non viene aggiunto nella compilation Javac più. Tutti @Getter, @Setter, ... non funzionano.

+0

Quale versione di Java stai usando? Per quanto ne so, Lombok ha problemi con il lavoro con Java 8. –

risposta

12

Dopo aver esaminato il progetto lombok ho trovato una soluzione.

Quando si specifica il JPAMetaModelEntityProcessor come processore di annotazione javac, il processore lombok sembra essere rimosso.

Per correggere questo, possiamo semplicemente aggiungere il processore di annotazione Lombok nel Maven-compiler-plugin:

[...] 
<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <compilerArguments> 
      <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor,lombok.launch.AnnotationProcessorHider$AnnotationProcessor</processor> 
     </compilerArguments> 
    </configuration> 
</plugin> 
[...]