Ошибка сборки приложения из-за Ломбока

#java #gradle #lombok #intellij-lombok-plugin

Вопрос:

Я столкнулся с проблемой при создании своего проекта, в котором используется Ломбок, после перехода в другую ветвь git. Я получаю несколько исключений, как правило, из этих двух типов:

  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
}
 

Кто-нибудь знает, что может вызвать эту проблему?

Комментарии:

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:

Я думаю, вам нужно обновить свои зависимости от ломбока до последней версии.