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

时间:2018-05-06 17:54:14

标签: java gradle warnings lombok annotation-processing

升级到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版本构建吗?

3 个答案:

答案 0 :(得分:29)

将lombok依赖关系类型从compile更改为annotationProcessor,因此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...
}

答案 1 :(得分:21)

如果您的项目包含测试,那么您将需要以下配置来完全摆脱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"
}

调整lombok版本以适合。

答案 2 :(得分:6)

Gradle added annotationProcessor in 4.6和Lombok是一个注释处理器,尽管他们的文档在使用Gradle时并不清楚,他们也知道,因为在使用Android Studio时会推荐它。 如此简短的答案是使用:

dependencies {
    compileOnly('org.projectlombok:lombok:1.18.0')
    annotationProcessor('org.projectlombok:lombok:1.18.0')
}