Lombok导致应用构建失败

5

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

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

   private ClassC c;

}

我明白了。

java: cannot find symbol
  symbol:   method onMethod_()
  location: @interface lombok.Setter
  • 对于像这样的类
  • @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,并勾选了“启用注解处理”选项。 下面是我的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_末尾有下划线符号? - Andrey
    当您在IntelliJ中尝试构建项目时,是否会出现此问题?如果尚未运行新分支中的Lombok代码生成器以生成新类,则预计会出现错误。 - Mustafa
    @Mustafa,当我尝试使用Intellij构建时,出现了这个错误。使用Gradle构建没有问题,但有时候我在使用Bamboo时也会遇到这些错误,所以我认为这不是与IDE相关的问题。 - Andrei Yusupau
    1
    @ImtiazShakilSiddique,使用Gradle构建没有问题,但在此之后,当我在Intellij中启动debug时,仍然会出现这些错误。 - Andrei Yusupau
    1
    好的,升级到 Lombok 1.18.18 解决了这个问题。 - Andrei Yusupau
    显示剩余5条评论
    2个回答

    4

    这个问题已经在 Lombok 的新版本中解决了。请将 Lombok 版本更新到 1.18.18,这样问题就会被修复。


    2
    这太愚蠢和令人沮丧了。我无法导入lombok 1.18.18(因为我们的组织在使用开源之前会创建一个包装器)。我感到沮丧,因为要解决这样愚蠢的框架或IDE问题(而不是实际工作)。我希望这个世界何时能对软件开发人员变得更加顺畅! - user3681970

    0

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


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接