Maven Groovy和Java + Lombok
我正在尝试将groovy添加到利用Lombok的现有Java Maven项目中。 不幸的是,当我使用下面的pom片段启用groovy-maven-eclipse编译器时,我的lombok注释的java文件无法编译。 据我所知,Lombok根本没有参与java文件的编译。
maven-compiler-plugin 2.3.1 groovy-eclipse-compiler true org.codehaus.groovy groovy-eclipse-compiler 2.6.0-01-SNAPSHOT
我还应该指出,在eclipse中(使用m2e)一切正常。 当我尝试做一个mvn包时,我的问题出现了。
@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:
maven-compiler-plugin 3.1 groovy-eclipse-compiler true true lombok.launch.Agent org.codehaus.groovy groovy-eclipse-compiler 2.9.1-01 org.codehaus.groovy groovy-eclipse-batch 2.3.7-01 org.projectlombok lombok 1.16.4
强制性部分:
true lombok.launch.Agent
在maven-compiler-plugin中增加了对lombok的依赖
编辑:更新版本
在撰写本文时,正确的答案是并且仍然是被接受的答案。 我无意窃取这种声誉,但我也不想再次编辑它,因为它有点过时(例如链接到Codehaus),所以我基本上不得不重写它,以便更新它。
这是一个基于Maven POM的
- Java 8
- Maven编译器3.7.0
- Groovy 2.4.7
- Groovy Eclipse编译器2.9.3-01
- Groovy Eclipse Batch 2.4.15-01
- 龙目岛1.16.20
它还包含Maven Central上没有的最新Groovy Eclipse版本的插件存储库配置。
顺便说一下,我正在使用这个设置进行Spock + Geb测试。
4.0.0 de.scrum-master.testing my-artifact 1.0-SNAPSHOT UTF-8 UTF-8 1.8 1.8 2.9.3-01 2.4.15-01 1.16.20 bintray Groovy Bintray https://dl.bintray.com/groovy/maven never false org.apache.maven.plugins maven-compiler-plugin 3.6.0 ${maven.compiler.source} ${maven.compiler.target} false ${project.build.sourceEncoding} groovy-eclipse-compiler lombok.launch.Agent true org.codehaus.groovy groovy-eclipse-compiler ${version.groovy-eclipse-compiler} org.codehaus.groovy groovy-eclipse-batch ${version.groovy-eclipse-batch} org.projectlombok lombok ${version.lombok} org.codehaus.groovy groovy-eclipse-compiler ${version.groovy-eclipse-compiler} true org.codehaus.groovy groovy-all 2.4.7 org.projectlombok lombok ${version.lombok}
阅读有关此主题的更多信息在Groovy-Eclipse wiki的Lombok部分中 。