2011-12-15 57 views
10

我正在尝试将Groovy添加到利用Lombok的现有Java Maven项目中。不幸的是,当我使用下面的pom片段启用groovy-maven-eclipse编译器时,我的lombok注释的java文件无法编译。据我所知,龙目岛根本没有参与编译java文件。Maven Groovy和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> 

我还应该指出,虽然在日食(与m2e)一切工作正常。我尝试制作mvn软件包时出现问题。

+0

你有龙目岛包含在你的Maven的依赖? http://projectlombok.org/mavenrepo/index.html – 2011-12-27 01:37:10

回答

15

@Todd:如果您不需要使用一些常规工具开发maven插件(请参阅http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven),groovy-eclipse-compiler是最佳选择。

@embience:您的问题与http://jira.codehaus.org/browse/GRECLIPSE-1293相关。 这个bug现在已经用最新的groovy-eclipse-compiler 2.6.1-01-SNAPSHOT修复了。

注意:提供最新版本现在是2.9.1-01,看到http://docs.groovy-lang.org/latest/html/documentation/tools-groovyeclipse.html

您必须修改您的POM这样的:

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

强制性的部分:

<fork>true</fork> 

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

在maven-compiler-plugi中增加了对lombok的依赖ñ

编辑:更新版本

+0

任何想法在何处获得org.codehaus.groovy的Maven工件:groovy-eclipse-compiler:2.6.1-01-SNAPSHOT? 我无法在任何回购中找到它。即使在codehaus快照回购中! – Meeque 2012-06-15 16:57:03