Подтвердить что ты не робот

IntelliJ IDEA не может видеть код, сгенерированный Lombok

У меня есть проект, основанный на Gradle, который использует lombok. Я импортировал этот проект в IntelliJ IDEA 14.1 (используя импорт импорта модели). Я могу запустить JUnit4 модульные тесты без проблем в Gradle, но IntelliJ, похоже, имеет проблему, увидев, что Lombok сгенерировал Getters. Это мешает мне проводить тесты в IDEA.

Чтобы убедиться, что это не проблема с настройкой, я создал Очень простой проект и подтвердил, что тот же проблема возникает в простом тестовом проекте.

Мои версии: Gradle: Gradle -2.3-all через Gradle wrapper
Intellij IDEA: IU-141.713
Плагин Ломбок: 0.9.2

Что мне здесь не хватает?

Обновление. Не вижу. Я не имею в виду физически невидимое. Я имею в виду это:

/home/meeee/workspace/junit-lombok-idea/lib/src/main/java/com/example/jumbokea/Main.java
Error:(10, 11) java: cannot find symbol
  symbol:   method setIntField(int)
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(12, 41) java: cannot find symbol
  symbol:   method getIntField()
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(14, 33) java: constructor AnotherClass in class com.example.jumbokea.AnotherClass cannot be applied to given types;
  required: no arguments
  found: float,com.example.jumbokea.SomeClass
  reason: actual and formal argument lists differ in length
Error:(16, 46) java: cannot find symbol
  symbol:   method getSomeFloat()
  location: variable ac of type com.example.jumbokea.AnotherClass
Error:(17, 43) java: cannot find symbol
  symbol:   method getSomeClass()
  location: variable ac of type com.example.jumbokea.AnotherClass

Декомпилированные классы показывают геттеры и сеттеры, но я получаю эти ошибки, когда я получаю IntelliJ для запуска "приложения" или тестов Unit.

Getters and setters are there, but not there???

4b9b3361

Ответ 1

Вам нужно включить препроцессор аннотации. См. документацию здесь.

Кроме того, вы должны установить плагин lombok, если он еще не выполнен

Ответ 2

Мне удалось решить эту проблему, выполнив следующие действия:

  • Установите плагин IDEA Lombok
  • Включить обработку аннотаций см. Документацию
  • Установите последний Maven в вашей системе и настройте IntelliJ для его использования (в отличие от прилагаемого) см. Документацию

Ответ 3

В моем случае проблема возникла после обновления IntelliJ через Toolbox.

Флаг "Включить обработку аннотаций" был отключен (несмотря на импорт настроек из предыдущей версии IntelliJ), поэтому я включил его. Это не решило проблему после перезапуска, очистки, сборки.

Однако повторная установка плагина lombok помогла!

РЕДАКТИРОВАТЬ: Кажется, что это была проблема с совместимостью плагина lombok с IntelliJ 2018.1, обновление плагина до 0.17 требуется для пользователей IntelliJ.

Выписка из журнала изменений плагина Lombok:

Плагин поддержки Lombok обновлен до v0.17: - Исправлено (# 465): Исправлена совместимость плагина с IntelliJ 2018.1

Ответ 4

Это можно увидеть в папке сборки.

enter image description here

Ответ 5

После включения процессора аннотаций и установленного плагина lombok, если в методе, сгенерированном lombok, по-прежнему появляется сообщение "Не удается найти ошибку символа", попробуйте проверить конфигурацию gradle, которая находится в

Предпочтение → Построение, выполнение, развертывание → Gradle,

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

Я получил эту ошибку, когда мой упаковщик gradle проекта - 4.10.2, но моя локальная версия gradle - 5.1.1, и я решаю ее после того, как изменил ее, чтобы использовать упаковщик gradle по умолчанию.

Ответ 6

Как уже упоминалось в другом ответе, пожалуйста, установите плагин Lombok и включите процессор аннотаций. Нажмите двойной SHIFT в IntelliJ и введите Enable annotation processing в поле поиска. После этого установите флажок и перезапустите IDE.

enter image description here

enter image description here

Ответ 7

В случае Ломбока IntelliJ позволяет вам искать переменные, которые также будут включать в себя геттеры и сеттеры. Просто нажмите имя переменной и option/alt + f7.

Это работает в Intellij 2016 и Lombok plugin 0.13.16. Я не уверен в более старых версиях.

Ответ 8

Добавьте ниже зависимость в pom.xml вместе с другими решениями, упомянутыми в других ответах.

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.2</version>
    <scope>provided</scope>
</dependency>

Ответ 9

Попробуйте нажать на lombok import и поставить alt + enter, после чего появится краткий список, выбрать add maven зависимость, затем в правом нижнем углу экрана появится значок, что maven должен быть включен, нажмите enable автоматически. Для меня это сработало.