Не могу скомпилировать проект: Getter, созданный lombok, не работает - PullRequest
1 голос
/ 16 января 2020

У меня есть проект весенней загрузки от Gradle. Когда я это скомпилировал, это не удалось из-за проблемы с ломбоком.

error: cannot find symbol
        sampleClass.getId();
                   ^

Я думаю, что это странно, потому что на экране редактора нет проблем. enter image description here Класс данных:

import lombok.Data;

@Data
public class SampleClass {
    private int id;
}

А класс контроллера:

@RestController
public class MyController {

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String getTop()
    {
        SampleClass sampleClass = new SampleClass();
        sampleClass.getId();
        return "test";
    }

}

Зависимости от build.gradle:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    compileOnly 'org.projectlombok:lombok:1.16.10'
    runtimeOnly 'mysql:mysql-connector-java'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

Может кто-нибудь объяснить эту проблему?
спасибо.

Ответы [ 2 ]

2 голосов
/ 16 января 2020
  1. Проверьте, включена ли Обработка аннотаций :

Файл> Настройки> Построение, выполнение, развертывание> Компилятор> Процессоры аннотаций

Проверьте, установлен ли плагин Lombok (перезапустите IDE после установки плагина):

Файл> Настройки> Плагины

Попробуйте другую версию Lombok. (в настоящее время самым новым является 1.18.10)

Обязательно включите annotationProcessor 'org.projectlombok:lombok' в настройках проекта Gradle.

С это Страница настройки Lombok:

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.10'
    annotationProcessor 'org.projectlombok:lombok:1.18.10'
}
1 голос
/ 16 января 2020

Вам не хватает определить зависимость Lombok в конфигурации annotationProcessor.

annotationProcessor 'org.projectlombok:lombok'

Поскольку вы используете Spring Boot, вы можете удалить version из этой конкретной зависимости, так как она уже определяется плагином Spring Dependency Management .

Для полного контекста взгляните на соответствующий проект, созданный Spring Initializr .

...