我在使用 gradle 4.7 项目时收到以下消息
The following annotation processors were detected on the compile classpath: 'lombok.launch.AnnotationProcessorHider$AnnotationProcessor' and 'lombok.launch.AnnotationProcessorHider$ClaimingProcessor'. Detecting annotation processors on the compile classpath is
Deprecated and Gradle 5.0 will ignore them. Please add them to the annotation processor path instead. If you did not intend to use annotation processors, you can use the '-proc:none' compiler argument to ignore them.
跑步时
gradlew build --warning-mode=all
在具有以下 Gradle 配置的项目上
compileOnly('org.projectlombok:lombok')
testCompileOnly('org.projectlombok:lombok')
正如警告所示,建议将它们放在annotationProcessor
(and testAnnotationProcessor
)配置以兼容gradle 5.0
annotationProcessor('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
然而,通过一个简单的测试:
@Slf4j
public class LombokTests {
@Test
public void lombokCompiles() {
log.info("foobar");
}
}
该配置失败:
> Task :compileTestJava FAILED
D:\Users\bobjones\repos\my-new-app\src\test\java\com\example\app\LombokTests.java:10: error: cannot find symbol
@Slf4j
^
symbol: class Slf4j
1 error
我错过了什么吗?
Add the compileOnly
/testCompileOnly
配置
annotationProcessor('org.projectlombok:lombok')
compileOnly('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
testCompileOnly('org.projectlombok:lombok')
根据文档 https://docs.gradle.org/4.7-rc-1/userguide/java_plugin.html#sec:java_compile_avoidance,annotationProcessor 配置仍然需要compileOnly
(and testCompileOnly
对于测试类)配置以发挥作用。至于对增量注释处理的支持,Lombok 的实现者刚刚合并了对 master 的支持,但截至 2018 年 5 月 25 日尚未包含上线版本。
他们的最后一个版本 16.2.20 跨越提交直到2018 年 1 月 9 日 https://github.com/rzwitserloot/lombok/commits/v1.16.20Gradle 更改已被拉入 master2018 年 5 月 15 日 https://github.com/rzwitserloot/lombok/commit/366d18c8614d00e17447781796c65ee693251d5c所以我怀疑新版本距离发布不会太远,尽管他们'Edgy' https://projectlombok.org/download-edge发行版不包含有关此功能的任何注释。
2020 年 10 月编辑:
A Gradle 插件可通过 io.freefair 获取 https://plugins.gradle.org/plugin/io.freefair.lombok它可以自动配置这些设置并帮助保持 lombok 最新(当然您可以自己覆盖 lombok 版本)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)