2011-12-15 17 views
10

Sto cercando di aggiungere groovy a un progetto Java Maven esistente che sfrutta Lombok. Sfortunatamente quando abilito il compilatore groovy-maven-eclipse con il frammento pom qui sotto, i miei file java con annotazione lombok non riescono a compilare. Per quanto posso dire, Lombok non sta affatto partecipando alla compilazione di file java.Maven Groovy e Java + Lombok

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.1</version> 
    <configuration> 
     <compilerId>groovy-eclipse-compiler</compilerId> 
     <verbose>true</verbose> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-eclipse-compiler</artifactId> 
      <version>2.6.0-01-SNAPSHOT</version> 
     </dependency> 
    </dependencies> 
</plugin> 

Vorrei anche sottolineare che, mentre in Eclipse (con M2E) tutto funziona bene. Il mio problema sorge quando provo a fare un pacchetto mvn.

+0

Possiedi Lombok inclusi nelle vostre dipendenze Maven? http://projectlombok.org/mavenrepo/index.html –

risposta

15

@Todd: Il compilatore di groovy-eclipse è la scelta migliore se non è necessario installare il plugin di Maven con alcuni strumenti groovy (vedere http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven).

@Abience: è stato raggiunto il problema relativo a http://jira.codehaus.org/browse/GRECLIPSE-1293. Questo bug è stato corretto con l'ultimo groovy-eclipse-compiler 2.6.1-01-SNAPSHOT.

Nota: L'ultima versione disponibile è ora 2.9.1-01, vedere http://docs.groovy-lang.org/latest/html/documentation/tools-groovyeclipse.html

È necessario modificare il vostro pom in questo modo:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <compilerId>groovy-eclipse-compiler</compilerId> 
     <verbose>true</verbose> 
     <fork>true</fork> 
     <compilerArguments> 
     <javaAgentClass>lombok.launch.Agent</javaAgentClass> 
     </compilerArguments> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-eclipse-compiler</artifactId> 
      <version>2.9.1-01</version> 
     </dependency> 
     <!-- for 2.8.0-01 and later you must have an explicit dependency on groovy-eclipse-batch --> 
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-eclipse-batch</artifactId> 
      <version>2.3.7-01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>1.16.4</version> 
     </dependency> 
    </dependencies> 
</plugin> 

Le parti obbligatorie:

<fork>true</fork> 

<compilerArguments> 
    <javaAgentClass>lombok.launch.Agent</javaAgentClass> 
</compilerArguments> 

La dipendenza aggiunta a lombok all'interno del maven-compiler-plugi n

Modifica: aggiornamento versioni

+0

Qualche idea su dove ottenere gli artefatti Maven di org.codehaus.groovy: groovy-eclipse-compiler: 2.6.1-01-SNAPSHOT? Non riuscivo a trovarlo in nessun repository. Nemmeno nel repository dell'istantanea codehaus! – Meeque

+0

L'ultima versione disponibile è ora 2.7.0-01, vedi http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven –

Problemi correlati