Ломбокские аннотации не компилируются по идее Intellij
- Я установил плагин для intellij idea(lombok-plugin-0.8.6-13).
- Добавлен lombok.jar в classpath
- Я могу найти геттеры и сеттеры в окне структуры. И Intellij не показывает ошибки.
- Настройка - Плагин 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
- Зайдите в Настройки, найдите Плагины.
- Введите "Lombok" в поле поиска плагинов. Lombok - это не связанный плагин, поэтому сначала он не будет отображаться.
- Нажмите "Обзор" для поиска не связанных плагинов
- Должен появиться "Плагин Lombok". Выберите это.
- Нажмите зеленую кнопку "Установить".
- Нажмите кнопку "Перезапустить Intellij IDEA".
Настройки:
Включить процессор аннотаций
- Перейдите в "Настройки" -> "Сборка, выполнение, развертывание" -> "Настройки" -> "Компилятор" -> "Процессоры аннотаций".
- Файл -> Другие настройки -> Настройки по умолчанию -> Компилятор -> Процессоры аннотаций
Проверьте, включен ли плагин Lombok
- IntelliJ IDEA-> Настройки -> Другие настройки -> Плагин Lombok -> Включить Lombok
Добавьте Lombok jar в глобальные библиотеки и зависимости проекта.
- Файл -> Структура проекта -> Глобальные библиотеки (Добавить lombok.jar)
Файл -> Структура проекта -> Настройки проекта -> Модули -> Вкладка Зависимости = проверить lombok
Перезапустите Intellij
Я следовал этой процедуре, чтобы получить похожую / ту же ошибку.
мвн идея: чистая
мвн идея: идея
После этого я смог собрать как из intellij IDE, так и из командной строки.
Потратив слишком много времени на устранение неполадок, я нашел простой обходной путь, который гарантирует, что IntelliJ правильно обрабатывает аннотации Lombok во время сборок.
Плагин Gradle-Lombok не требуется для этого обходного пути. Ваш build.gradle
требуется только следующее:
dependencies {
compileOnly("org.projectlombok:lombok:1.16.18")
}
Обходной путь должен включить следующую настройку IntelliJ:
- Откройте настройки / настройки IntelliJ.
- Перейдите к
Build, Execute, Deployment > Build Tools > Gradle > Runner
- Установите флажок с надписью
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
Надеюсь, мой ответ будет вам полезен
Убедитесь, что эти два требования выполнены:
Включить обработку аннотаций,
Предпочтения> Построение, выполнение, развертывание> Компилятор> Процессоры аннотаций> Включить обработку аннотаций
Плагин 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 шага
- Установите плагин Lombok из Файл-> Настройки-> Плагины
- Включить процессор аннотаций (также работает компилятор javac)
- Убедитесь, что у вас есть build.gradle или pom.xml, обновленные для идеи, если вы добавляете lombok в качестве пользовательской конфигурации.