Не могу скомпилировать проект, когда я использую Lombok под IntelliJ IDEA - PullRequest
164 голосов
/ 24 февраля 2012

Я пытаюсь использовать Lombok в своем проекте, который я разрабатываю с использованием IntelliJ IDEA 11.

Я установил сторонний плагин для IDEA и, кажется, работает нормально, потому что IDEA видит все автоматически сгенерированные методы / поля.

Итак, у меня есть класс, который использует Slf4j.Я прокомментировал это так:

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}

Но когда я собираю плоды, компилятор моего проекта: cannot find symbol variable log.

Не могли бы вы сказать мне, что мне здесь не хватает?

Обновление: Оказалось, что процесс аннотации RequestFactory завершился неудачей.

input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}

annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]

Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.

cannot find symbol variable log

Есть идеи по поводу обходных путей?

Обновление 2: Возможно, это не такчто-то, что читатели хотят услышать, но в итоге я переключился на Scala .

Ответы [ 25 ]

345 голосов
/ 29 января 2013

Я исправил это в IDEA 12, установив флажок Enable annotation processing в:

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

Для IDEA 2016.2:

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

71 голосов
/ 11 мая 2015

Включение обработки аннотаций заставит его работать

Но если вы используете Mac , убедитесь, что вы включили обработку аннотаций (поставьте галочку) с в обоих местах .

1.) Intellij Idea -> Настройки -> Компилятор -> Процессоры аннотаций

2.) Файл -> Другие настройки -> Настройки по умолчанию -> Компилятор -> Процессоры аннотаций

43 голосов
/ 15 марта 2017

Изображение с изображением решения этой проблемы.

Сначала включите процессоры аннотаций и попробуйте.Это может или не может работать.enter image description here

Опубликуйте это, вы можете установить плагин lombok из intellij (После установки Intellij перезапустится, чтобы включить плагин, поэтому убедитесь, что вы сохранили свою работу.все изменения перед перезапуском, просто чтобы быть в безопасности.)) скриншот ниже:

enter image description here

7 голосов
/ 14 июля 2013

Как отмечено здесь , цитата: «Вам следует активировать опцию внешнего компилятора и включить процессоры аннотаций или отключить внешний компилятор и отключить все компиляторы аннотаций для работы с lombok». Это исправило мою проблему. Обратите внимание, что я добавил плагин Scala до получения этой ошибки, поэтому я подозреваю, что плагин изменил некоторые из вышеуказанных настроек.

6 голосов
/ 07 августа 2015

есть плагин для intellij.см. здесь: https://projectlombok.org/download.html

6 голосов
/ 27 марта 2017

Если вы проверили оба эти шага следующим образом

  1. Включить аннотации: эта проверка выполняется в настройках IntelliJ.
  2. Импорт lombok в IntelliJ classPath (Настройки -> Плагины)

и все еще получение ошибок, тогда проверьте компилятор - если это JAVAC или ECLIPSE .

Вы можете проверить компилятор в Предпочтения -> Построение, Выполнение, Развертывание -> Компилятор -> Компилятор Java.

Измените Использовать компилятор наJavac (если это Eclipse).Это то, что сработало для меня.

5 голосов
/ 19 февраля 2019

Просто для справки, используя IntelliJ 2018.3 , я решил эту проблему (используя @Data аннотация для вставки getter/setter), выполнив три шага:

  1. Файл -> Настройки-> Построение, выполнение, развертывание -> Процессоры аннотаций -> Включить обработку аннотаций;

enter image description here

Не забудьте Применить изменение.

Установить плагин Ломбок в том же диалоге настроек;

enter image description here

Пока это кажется достаточно хорошим, требуется перезапустить IntelliJ, а затем перестроить ваш проект.

С наилучшими пожеланиями:)

4 голосов
/ 25 февраля 2012

Есть ли у вас ломбок в качестве зависимости вашего проекта?lombok.jar должен находиться на пути к классам во время компиляции проекта, который использует любую из аннотаций lombok.

3 голосов
/ 27 января 2018

Я был на Mac

Это моя версия IntelliJ IDEA и Mac - IntelliJ IDEA 2017.1.5 Build # IU-171.4694.70 --- Mac OS X 10.12

В дополнение к включению обработки аннотаций (установите флажок) в этих 2 местах.

1.) Intellij IDEA -> Настройки -> Компилятор -> Процессоры аннотаций

.

2.) Файл -> Другие настройки -> Настройки по умолчанию -> Компилятор -> Процессоры аннотаций

Мне также пришлось установить плагин Lombok, чтобы он работал.

3.) Intellij IDEA -> Настройки -> Плагины -> Обзор репозиториев-> Поиск по «Lombok» -> Установить плагин -> Применить и перезапустить IDEA

2 голосов
/ 21 августа 2016

Для тех из вас, у кого все еще проблемы:

В дополнение к вышеупомянутым шагам включения процессоров аннотаций и установки плагина IntelliJ Lombok мне также пришлось выполнить Build -> Rebuild Project.

...