Ломбокские аннотации не компилируются по идее Intellij

  1. Я установил плагин для intellij idea(lombok-plugin-0.8.6-13).
  2. Добавлен lombok.jar в classpath
  3. Я могу найти геттеры и сеттеры в окне структуры. И Intellij не показывает ошибки.
  4. Настройка - Плагин Lombok - Проверенная конфигурация Intellij для lombok, она показывает, что "конфигурация IntelliJ, кажется, в порядке".

Вроде все ок. Но когда я компилирую тест, появляются ошибки: не могу найти методы getXXX и setXXX.

Я открыл файл.class с IntelliJ и обнаружил, что нет методов setXXX и getXXX.

Может кто-нибудь сказать мне, почему?

  • плагин: Ломбок-плагин-0.8.6-13
  • lombok.jar: 1.14.0
  • идея: 13.0.2 для linux
  • JDK:1.7.0_21

11 ответов

Для решения проблемы установите:

  • Настройки (Ctrl + Alt + S)
    • Сборка, выполнение, развертывание
      • составитель
        • Процессоры аннотаций
          • Включить обработку аннотаций

Убедитесь, что у вас установлен плагин Lombok для IntelliJ!

  • предпочтения -> Плагины
  • Искать "Lombok Plugin"
  • Нажмите Обзор репозиториев...
  • Выберите плагин Lombok
  • устанавливать
  • Перезапустите IntelliJ

Если вы используете компилятор Eclipse с lombok, эта настройка, наконец, сработала для меня:

  • ИДЕЯ 14.1
  • Ломбок плагин
  • ... / Компилятор / Java Compiler > Использовать компилятор: Eclipse
  • ... / Компилятор / Процессоры аннотаций > Включить обработку аннотаций: проверено (конфигурация по умолчанию)
  • ... / Компилятор > Дополнительные параметры процесса сборки VM: -javaagent: lombok.jar

Самая важная часть - последняя, ​​моя выглядит следующим образом:введите описание изображения здесь

Плагин необходим для того, чтобы редактор IntelliJ мог распознавать методы получения и установки, javaagent необходим для компиляции eclipse с помощью lombok.

Если вы используете Intellij на Mac, эта настройка, наконец, сработала для меня.

Установки: Intellij

  1. Зайдите в Настройки, найдите Плагины.
  2. Введите "Lombok" в поле поиска плагинов. Lombok - это не связанный плагин, поэтому сначала он не будет отображаться.
  3. Нажмите "Обзор" для поиска не связанных плагинов
  4. Должен появиться "Плагин Lombok". Выберите это.
  5. Нажмите зеленую кнопку "Установить".
  6. Нажмите кнопку "Перезапустить Intellij IDEA".

Настройки:

  1. Включить процессор аннотаций

    • Перейдите в "Настройки" -> "Сборка, выполнение, развертывание" -> "Настройки" -> "Компилятор" -> "Процессоры аннотаций".
    • Файл -> Другие настройки -> Настройки по умолчанию -> Компилятор -> Процессоры аннотаций
  2. Проверьте, включен ли плагин Lombok

    • IntelliJ IDEA-> Настройки -> Другие настройки -> Плагин Lombok -> Включить Lombok
  3. Добавьте Lombok jar в глобальные библиотеки и зависимости проекта.

    • Файл -> Структура проекта -> Глобальные библиотеки (Добавить lombok.jar)
  4. Файл -> Структура проекта -> Настройки проекта -> Модули -> Вкладка Зависимости = проверить lombok

  5. Перезапустите Intellij

Я следовал этой процедуре, чтобы получить похожую / ту же ошибку.

мвн идея: чистая

мвн идея: идея

После этого я смог собрать как из intellij IDE, так и из командной строки.

Потратив слишком много времени на устранение неполадок, я нашел простой обходной путь, который гарантирует, что IntelliJ правильно обрабатывает аннотации Lombok во время сборок.

Плагин Gradle-Lombok не требуется для этого обходного пути. Ваш build.gradle требуется только следующее:

dependencies {
    compileOnly("org.projectlombok:lombok:1.16.18")
}

Обходной путь должен включить следующую настройку IntelliJ:

  1. Откройте настройки / настройки IntelliJ.
  2. Перейдите к Build, Execute, Deployment > Build Tools > Gradle > Runner
  3. Установите флажок с надписью Delegate IDE build/run actions to gradle


Преимущества этого обходного пути по сравнению с другими решениями на этой странице:

  • Обработка аннотаций не требуется!
  • Возможность использовать компилятор Java по вашему выбору (компилятор Eclipse не требуется)
  • Не использовать глючный плагин Gradle-Lombok (хотя, возможно, кто-то другой может решить эту проблему)
  • Нет необходимости в настройках виртуальной машины
  • Нет жестко заданных путей к банке Ломбок

Недостатком является то, что IntelliJ больше не будет использовать свой собственный бегун тестов. Вместо этого тесты всегда проходят через Gradle.

Для меня нужны как плагин lombok, так и обработка аннотаций, больше ничего. Нет необходимости использовать Eclipse и дополнительные опции -javaagent:lombok.jar.

  • Идея 14.1.3, сборка 141.1010
  • Плагин Lombok [Preference->plugins->browse репозитории->search 'lombok'-> идея установки и перезапуска.
  • Предпочтение -> поиск 'аннотации' -> ввести процессор аннотаций -> включить обработку аннотаций.

ИДЕЯ 2016.1:

  • Установите плагин lombok
  • Настройки -> Компилятор -> Процессоры аннотаций -> Включить обработку аннотаций: проверено (конфигурация по умолчанию)
  • Настройки -> Компилятор -> Процессоры аннотаций -> Процессоры аннотаций добавляют "lombok.launch.AnnotationProcessorHider$AnnotationProcessor"
  • Также, если вы используете maven add в конфигурацию плагинов maven -> annotationProcessors -> annotationProcessor: lombok.launch.AnnotationProcessorHider$AnnotationProcessor

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>${maven.plugin.compiler.version}</version>
      <configuration>
        <compilerVersion>${java.version}</compilerVersion>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <annotationProcessors>
          <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
        </annotationProcessors>
      </configuration>
    </plugin>
    

Ни один из продвинутых ответов на этот вопрос не решил проблему для меня.

Мне удалось решить эту проблему, добавив зависимость к lombok в файле pom.xml, то есть:

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.16.12</version>
</dependency>

Я использую IntelliJ 2016.3.14 с maven-3.3.9

Надеюсь, мой ответ будет вам полезен

Убедитесь, что эти два требования выполнены:

  1. Включить обработку аннотаций,

    Предпочтения> Построение, выполнение, развертывание> Компилятор> Процессоры аннотаций> Включить обработку аннотаций

  2. Плагин Lombok установлен и включен для вашего проекта.

На Itellij 15 CE достаточно просто установить плагин Lombok (дополнительная настройка не требуется).

Я не могу заставить это работать с компилятором javac, и я получаю ту же ошибку.

Ошибка:(9, 14) Java: пакет lombok не существует

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

Однако я заставил его работать частично с компилятором eclipse. Я говорю частично, потому что, хотя сборка проходит успешно, редактор все еще жалуется на "Не удается разрешить символ".

Идея - 15.04 выпуск сообщества Lombok - 1.16.6 Плагин Lombok ( https://github.com/mplushnikov/lombok-intellij-plugin) - 0.9.8 JDK - 1.8.0_51

Обновление: Хорошо, я наконец-то получил это работает. Мой проект был незаметным, и lombok был настроен как настраиваемая конфигурация. Работал нормально после добавления этого в build.gradle

idea {
 module {
     scopes.PROVIDED.plus += [configurations.provided]
    }
}

Итак, 3 шага

  1. Установите плагин Lombok из Файл-> Настройки-> Плагины
  2. Включить процессор аннотаций (также работает компилятор javac)
  3. Убедитесь, что у вас есть build.gradle или pom.xml, обновленные для идеи, если вы добавляете lombok в качестве пользовательской конфигурации.
Другие вопросы по тегам