Gradle弃用了lombok的注释处理器警告

Boh*_*ian 21 java warnings gradle annotation-processing lombok

升级到gradle 4.7后,我之前的无警告版本现在会发出此警告:

在编译类路径上检测到以下注释处理器:'lombok.launch.AnnotationProcessorHider $ AnnotationProcessor'和'lombok.launch.AnnotationProcessorHider $ ClaimingProcessor'.不推荐在编译类路径上检测注释处理器,Gradle 5.0将忽略它们.请将它们添加到注释处理器路径中.如果您不打算使用注释处理器,则可以使用'-proc:none'编译器参数来忽略它们.

似乎不推荐使用注释处理器,并且gradle版本5.0不支持注释处理器.

我的项目使用lombok,它需要处理注释处理器,因此使用-proc:none不是一种选择.当verison 5.0发布时,它们都不会停止使用Gradle.

我如何能:

  • 停止警告,并且
  • 确保我的项目将继续使用未来的Gradle版本构建?

Boh*_*ian 33

将lombok依赖项类型从更改compileannotationProcessor,因此build.gradle文件中的依赖项部分应如下所示:

dependencies {
    compileOnly('org.projectlombok:lombok:1.16.20')
    annotationProcessor 'org.projectlombok:lombok:1.16.20'
    // compile 'org.projectlombok:lombok:1.16.20' <-- this no longer works!
    // other dependencies...
}
Run Code Online (Sandbox Code Playgroud)

  • 是的,目前由于lombok不会为其API(注释)和Annotation Processor发布单独的jar文件,因此您必须将jar文件添加到`compile`和`annotationProcessor`依赖项配置中 (2认同)

And*_*own 25

如果您的项目包含测试,那么您将需要以下配置来完全摆脱gradle警告:

dependencies {
  compileOnly "org.projectlombok:lombok:1.18.2"
  testCompileOnly "org.projectlombok:lombok:1.18.2"
  annotationProcessor "org.projectlombok:lombok:1.18.2"
  testAnnotationProcessor "org.projectlombok:lombok:1.18.2"
}
Run Code Online (Sandbox Code Playgroud)

调整lombok版本以适应.


Tec*_*ter 6

Gradle在4.6中添加了annotationProcessor,而Lombok是一个注释处理器,即使他们的文档在使用Gradle时并不是很清楚,他们也会在使用Android Studio时推荐它.所以简短的回答就是使用:

dependencies {
    compileOnly('org.projectlombok:lombok:1.18.0')
    annotationProcessor('org.projectlombok:lombok:1.18.0')
}
Run Code Online (Sandbox Code Playgroud)