Ответ 1
Вам нужно включить препроцессор аннотации. См. документацию здесь.
Кроме того, вы должны установить плагин 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.
Вам нужно включить препроцессор аннотации. См. документацию здесь.
Кроме того, вы должны установить плагин lombok, если он еще не выполнен
Мне удалось решить эту проблему, выполнив следующие действия:
В моем случае проблема возникла после обновления IntelliJ через Toolbox.
Флаг "Включить обработку аннотаций" был отключен (несмотря на импорт настроек из предыдущей версии IntelliJ), поэтому я включил его. Это не решило проблему после перезапуска, очистки, сборки.
Однако повторная установка плагина lombok помогла!
РЕДАКТИРОВАТЬ: Кажется, что это была проблема с совместимостью плагина lombok с IntelliJ 2018.1, обновление плагина до 0.17 требуется для пользователей IntelliJ.
Выписка из журнала изменений плагина Lombok:
Плагин поддержки Lombok обновлен до v0.17: - Исправлено (# 465): Исправлена совместимость плагина с IntelliJ 2018.1
Это можно увидеть в папке сборки.
После включения процессора аннотаций и установленного плагина lombok, если в методе, сгенерированном lombok, по-прежнему появляется сообщение "Не удается найти ошибку символа", попробуйте проверить конфигурацию gradle, которая находится в
Предпочтение → Построение, выполнение, развертывание → Gradle,
если вы используете локальную рассылку Gradle, перейдите на использование оболочки Gradle по умолчанию.
Я получил эту ошибку, когда мой упаковщик gradle проекта - 4.10.2, но моя локальная версия gradle - 5.1.1, и я решаю ее после того, как изменил ее, чтобы использовать упаковщик gradle по умолчанию.
Как уже упоминалось в другом ответе, пожалуйста, установите плагин Lombok
и включите процессор аннотаций. Нажмите двойной SHIFT
в IntelliJ и введите Enable annotation processing
в поле поиска. После этого установите флажок и перезапустите IDE.
В случае Ломбока IntelliJ позволяет вам искать переменные, которые также будут включать в себя геттеры и сеттеры. Просто нажмите имя переменной и option/alt + f7
.
Это работает в Intellij 2016 и Lombok plugin 0.13.16. Я не уверен в более старых версиях.
Добавьте ниже зависимость в pom.xml вместе с другими решениями, упомянутыми в других ответах.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
Попробуйте нажать на lombok import и поставить alt + enter, после чего появится краткий список, выбрать add maven зависимость, затем в правом нижнем углу экрана появится значок, что maven должен быть включен, нажмите enable автоматически. Для меня это сработало.