【问题标题】:Application build failed cause of LombokLombok 的应用程序构建失败原因
【发布时间】:2021-03-26 13:17:26
【问题描述】:

在切换到不同的 git 分支后,我在构建使用 Lombok 的项目时遇到了问题。 我通常会遇到这两种类型的多个异常:

  1. 对于像这样的类
@Setter(onMethod_ = @Autowired)
public class ClassA{

   private ClassC c;

}

我明白了

java: cannot find symbol
  symbol:   method onMethod_()
  location: @interface lombok.Setter
  1. 对于像这样的类
@Builder
public class ClassB{

}

我明白了

java: cannot find symbol
  symbol:   class ClassBBuilder
  location: class com.example.application.ClassB

在方法中

private ClassB.ClassBBuilder getBuilder(Object input) {
    //builder init
}
  1. 毕竟我得到了StackOverflowError

运行gradle:clean -> gradle:build 后问题已修复。但是在交换分支后又出现了。 更多信息: 我正在使用Intellij Idea 2020.3.3 Ultimate Edition 并选中复选框"Enable Annotation processing"。 以下是我build.gradle的部分内容:

import org.springframework.boot.gradle.plugin.SpringBootPlugin

plugins {
    id 'net.ltgt.apt' version '0.19'
    id 'net.ltgt.apt-idea' version '0.19'
    id 'org.springframework.boot' version '2.3.2.RELEASE' apply false
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'net.ltgt.apt'
apply plugin: 'net.ltgt.apt-idea'
apply plugin: 'io.spring.dependency-management'

repositories {
    maven { url = 'https://repo.maven.apache.org/maven2' }
}

dependencyManagement {
    imports {
        mavenBom SpringBootPlugin.BOM_COORDINATES
    }
}

dependencies {
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
//other dependencies
}

有谁知道是什么导致了这个问题?

【问题讨论】:

  • 为什么onMethod_末尾有下划​​线?
  • 当您尝试在 intellij 中构建项目时会发生这种情况吗?如果尚未运行新类(来自您的新分支)的 lombok 代码生成,则会出现错误。
  • 我认为问题与你的ide有关。尝试交换一个分支并在不使用 intellij 的情况下执行gradle: build。检查您是否仍然遇到问题。
  • @ImtiazShakilSiddique,使用Gradle 构建一切正常,但是当我在Intellij 中启动debug 之后,我仍然会遇到这些错误。
  • 好的,升级到 Lombok 1.18.18 解决了这个问题。

标签: java gradle lombok intellij-lombok-plugin


【解决方案1】:

此问题已在较新版本的 Lombok 中得到解决。请将 Lombok 版本更新到 1.18.18 即可解决问题。

【讨论】:

  • 这太愚蠢和令人沮丧了。我无法导入 lombok 1.18.18(因为我的组织在我们可以使用开源之前创建了一个包装器)。我对用框架或 IDE(而不是实际工作)解决这些愚蠢的问题感到沮丧。我希望这个世界什么时候对软件开发者来说变得顺畅!
【解决方案2】:

我认为您需要将 lombok 依赖项升级到最新版本。

【讨论】:

    猜你喜欢
    • 2011-01-15
    • 2017-07-18
    • 2020-03-21
    • 2011-07-16
    • 2014-11-18
    • 1970-01-01
    • 2016-07-11
    • 2022-08-19
    • 2019-01-25
    相关资源
    最近更新 更多