【发布时间】:2021-03-26 13:17:26
【问题描述】:
在切换到不同的 git 分支后,我在构建使用 Lombok 的项目时遇到了问题。 我通常会遇到这两种类型的多个异常:
- 对于像这样的类
@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
}
- 毕竟我得到了
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