如何在现代Gradle 4.6环境中设置Lombok注解处理?

时间:2018-10-17 11:34:30

标签: android kotlin android-gradle lombok annotation-processing

这是我的设置:

  • 已安装AndroidStudio Lombok插件
  • 在AndroidStudio设置中选中了启用注释处理
  • Gradle包装器正在使用4.6版
  • 我正在使用kotlin版本1.2.71
  • 我正在使用com.android.tools.build:gradle:3.2.1
  • 每次更改后,我都尝试“使缓存无效/重新启动AndroidStudio”
  • Lombok依赖项的定义如下:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

dependencies {
    compileOnly "org.projectlombok:lombok:1.18.2"
    kapt "org.projectlombok:lombok:1.18.2"
}

构建应用程序时,出现以下错误:

Annotation processors must be explicitly declared now. 
The following dependencies on the compile classpath are found to 
contain annotation processor.  
Please add them to the annotationProcessor configuration.
    - lombok-1.18.2.jar (org.projectlombok:lombok:1.18.2)

我也尝试了这种依赖性设置:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

dependencies {
    compileOnly "org.projectlombok:lombok:1.18.2"
    annotationProcessor "org.projectlombok:lombok:1.18.2"
}

但是随后我到处都是“找不到符号”错误,因为Lombok不会生成任何吸气剂/设置剂。

1 个答案:

答案 0 :(得分:0)

  

注释处理器必须立即显式声明。下列   发现编译类路径上的依赖项包含注释   处理器。

     

请将其添加到 annotationProcessor配置中。       -lombok-1.18.2.jar (org.projectlombok:lombok:1.18.2)

尝试将其添加为annotationProcessor

annotationProcessor 'org.projectlombok:lombok:1.18.2'

但是,请阅读:Is it possible to use Lombok with Kotlin?

  

Lombok不在您的源代码上运行,而是在AST上运行。反正   由Java在编译时运行的注释处理器   编译器。 Kotlin编译器不使用这些注释   处理器 。另请参阅答案   https://stackoverflow.com/a/35530223/2621917直接来自马匹   嘴巴。