#java #gradle #lombok #intellij-lombok-plugin
Вопрос:
Я столкнулся с проблемой при создании своего проекта, в котором используется Ломбок, после перехода в другую ветвь git. Я получаю несколько исключений, как правило, из этих двух типов:
- для таких занятий, как
@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
}
Кто-нибудь знает, что может вызвать эту проблему?
Комментарии:
1. Почему в конце есть символ подчеркивания
onMethod_
?2. происходит ли это, когда вы пытаетесь создать свой проект в intellij? Ошибки ожидаются, если генерация кода ломбока для новых классов (из вашей новой ветви) не была запущена.
3. Я думаю, что проблема связана с вашей ide. попробуйте поменять ветку местами и обойтись
gradle: build
без использования intellij. Проверьте, по-прежнему ли у вас проблема.4. @ImtiazShakilSiddique, сборка с
Gradle
помощью идет нормально, но когда я запускаюсьdebug
Intellij
после этого, я все равно получаю эти ошибки.5. Хорошо, обновление до Lombok 1.18.18 решило проблему.
Ответ №1:
Эта проблема была решена в более новой версии Lombok. Пожалуйста, обновите версию Ломбока до 1.18.18, и это исправит проблему.
Комментарии:
1. Это так глупо и неприятно. Я не могу импортировать ломбок 1.18.18 (потому что моя организация создает оболочку до того, как мы сможем использовать открытый исходный код). Я чувствую разочарование, когда решаю такие глупые проблемы с помощью фреймворка или IDE (вместо реальной работы). Я желаю, чтобы когда-нибудь этот мир стал гладким для разработчиков программного обеспечения!
Ответ №2:
Я думаю, вам нужно обновить свои зависимости от ломбока до последней версии.