2011-12-15 20 views
10

Estoy tratando de agregar groovy a un proyecto existente de Java Maven que aprovecha Lombok. Lamentablemente, cuando habilito el compilador groovy-maven-eclipse con el fragmento de pom a continuación, mis archivos java lombok anotados no se compilan. Por lo que puedo decir, Lombok no está participando en la compilación de archivos java en absoluto.Maven Groovy y 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> 

Debo señalar que mientras que en eclipse (con m2e) todo funciona bien. Mi problema surge cuando intento hacer un paquete mvn.

+0

¿Tiene Lombok incluido en sus dependencias Maven? http://projectlombok.org/mavenrepo/index.html –

Respuesta

15

@Todd: El compilador groovy-eclipse-compiler es la mejor opción si no necesita desarrollar el plugin maven con algunas herramientas geniales (consulte http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven).

@Ambiencia: ha llegado al problema relacionado al http://jira.codehaus.org/browse/GRECLIPSE-1293. Este error ahora se corrigió con el último compilador de eclipse de Groovy 2.6.1-01-SNAPSHOT.

Nota: La última versión disponible es ahora 2.9.1-01, ver http://docs.groovy-lang.org/latest/html/documentation/tools-groovyeclipse.html

Tiene que modificar su pom así:

<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> 

Las partes obligatorias:

<fork>true</fork> 

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

La dependencia añadida de lombok dentro del compilador-compilador maven n

Editar: actualización de versiones

+0

¿Alguna idea de dónde obtener los artefactos de Maven de org.codehaus.groovy: groovy-eclipse-compiler: 2.6.1-01-SNAPSHOT? No pude encontrarlo en ningún repositorio. ¡Ni siquiera en el repositorio de instantáneas de codehaus! – Meeque

+0

La última versión disponible ahora es 2.7.0-01, ver http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven –