【问题标题】:Cannot find symbol error: Lombok 1.18.6 does not work with Gradle 5.2.1, JDK 10找不到符号错误:Lombok 1.18.6 不适用于 Gradle 5.2.1、JDK 10
【发布时间】:2019-08-09 04:43:41
【问题描述】:

使用 Gradle 5.2.1 和 Lombok 1.18.6 依赖项的构建在 JDK 10 中失败。似乎 Lombok 注释未得到适当处理。我在源代码中的各种 Java 文件中不断收到“找不到符号”错误。关于为什么会发生这种情况的任何想法?我发现已经创建了一个缺陷:https://github.com/rzwitserloot/lombok/issues/1572

我正在使用:

Java JDK 10

Gradle 5.2.1

龙目岛 1.18.6

谢谢。

【问题讨论】:

    标签: java gradle groovy build lombok


    【解决方案1】:

    我发现以下解决方法是使用插件在编译时处理 Lombok 注释。

    我必须在 build.gradle 中执行以下步骤:

    1) 将id "net.ltgt.apt" version "0.15" 添加到插件部分。

    2) 将maven { url 'https://projectlombok.org/edge-releases' } 添加到存储库部分。

    3) 将以下内容添加到依赖项部分:

    compileOnly 'org.projectlombok:lombok:edge-SNAPSHOT'
    apt 'org.projectlombok:lombok:edge-SNAPSHOT'
    
    compileOnly 'org.projectlombok:lombok:1.18:6'
    annotationProcessor 'org.projectlombok:lombok:1.18:6'
    

    4) 添加任务:

    tasks.withType(JavaCompile) {
      options.annotationProcessorPath = configurations.apt
    }
    

    这可以让您的构建成功完成。

    2019 年 3 月 29 日更新:此解决方法也适用于 Gradle 5.3、Java JDK 10

    谢谢。

    【讨论】:

    • 您确定修复或解决方法不只是使用已修复此错误的快照存储库 (edge-releases)?
    • 很遗憾,此解决方法无法解决此问题。将 IntelliJ 更新到 2019.1 有所帮助。
    • 您能否发布或链接到完整的bundle.gradle 文件?我收到关于方法 apt() 未定义的构建错误。
    • annotationProcessor 'org.projectlombok:lombok:1.18:6' 这是我唯一需要添加的行。
    猜你喜欢
    • 2019-01-15
    • 2016-02-08
    • 2018-12-16
    • 1970-01-01
    • 2015-11-24
    • 2018-08-25
    • 2020-08-25
    • 2021-12-16
    • 2020-05-19
    相关资源
    最近更新 更多