Maven Groovy和Java + Lombok

Ste*_*rla 16 java groovy maven-3 lombok

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

<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>
Run Code Online (Sandbox Code Playgroud)

我还应该指出,在eclipse中(使用m2e)一切正常.当我尝试做一个mvn包时,我的问题出现了.

Chr*_*iak 23

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

@Ambience:您在http://jira.codehaus.org/browse/GRECLIPSE-1293上遇到了相关问题.现在用最新的groovy-eclipse-compiler 2.6.1-01-SNAPSHOT修复了这个bug.

注意:最新版本现在是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>
Run Code Online (Sandbox Code Playgroud)

强制性部分:

<fork>true</fork>

<compilerArguments>
    <javaAgentClass>lombok.launch.Agent</javaAgentClass>
</compilerArguments>
Run Code Online (Sandbox Code Playgroud)

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

编辑: 更新版本