Я пытаюсь использовать 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 .
java
intellij-idea
lombok
эксперт
источник
источник
Ответы:
Я исправил это в IDEA 12, установив флажок
Enable annotation processing
в:Для IDEA 2016.2:
После включения запустите Build -> Rebuild Project, чтобы аннотации были распознаны и устранены ошибки.
Для IDEA 2019.2.1, в зависимости от того, как настроен проект, установка плагина Project Lombok может быть недостаточной. Вот еще один способ использования Project Lombok с IntelliJ IDEA:
$HOME/dev/java/project/libs
).lombok
$HOME/dev/java/project/libs/lombok.jar
lombok
вProject Lombok 1.18.8
.Теперь проект можно импортировать из
lombok
пакета и использовать аннотации Project Lombok (например,lombok.Setter
иlombok.Getter
).источник
Включение обработки аннотаций заставит это работать
Но если вы работаете на Mac , убедитесь, что вы включили обработку аннотаций (поставьте галочку) в обоих доступных местах .
1.) Intellij Idea -> Настройки -> Компилятор -> Процессоры аннотаций
2.) Файл -> Другие настройки -> Настройки по умолчанию -> Компилятор -> Процессоры аннотаций
источник
Картинное представление решения этой проблемы.
Сначала включите аннотирование процессоров и попробуйте. Это может или не может работать.
После этого вы можете установить плагин lombok из intellij (после установки Intellij перезапустится, чтобы включить плагин, поэтому убедитесь, что вы сохранили свою работу. (Intellij сохраняет все изменения перед перезапуском, просто чтобы быть в безопасности). ) скриншот ниже:
источник
пример для Gradle:
источник
Просто для справки, используя IntelliJ 2018.3 , я решил эту проблему (используя
@Data
аннотацию для вставкиgetter/setter
), выполнив три шага:С наилучшими пожеланиями :)
источник
Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [module-core,module-utils] are excluded from annotation processing
Если вы проверили оба эти действия следующим образом
и до сих пор получаю ошибки , то , пожалуйста , проверьте компилятор - если это JAVAC или ECLIPSE .
Вы можете проверить компилятор в Предпочтения -> Сборка, Выполнение, Развертывание -> Компилятор -> Компилятор Java.
Измените Использовать компилятор на Javac (если это Eclipse). Это то, что сработало для меня.
источник
в последней версии Gradle вы должны использовать annotationProcessor:
источник
Как отмечалось здесь , цитата: «Вы должны активировать опцию внешнего компилятора и включить процессоры аннотаций или отключить внешний компилятор и отключить все компиляторы аннотаций для работы с lombok». Это исправило мою проблему. Обратите внимание, что я добавил плагин Scala до получения этой ошибки, поэтому я подозреваю, что плагин изменил некоторые из вышеуказанных настроек.
источник
есть плагин для intellij. смотрите здесь: https://projectlombok.org/download.html
источник
Есть ли у вас ломбок как зависимость вашего проекта? lombok.jar должен быть на пути к классам во время компиляции проекта, который использует любую из аннотаций lombok.
источник
Я был на
Mac
Это моя версия IntelliJ IDEA и Mac - IntelliJ IDEA 2017.1.5 Build # IU-171.4694.70 --- Mac OS X 10.12
В дополнение к включению обработки аннотаций (установите флажок) в этих 2 местах.
,
Мне также пришлось установить плагин Lombok, чтобы он работал.
источник
Для тех из вас, у кого все еще проблемы:
В дополнение к описанным выше шагам включения процессоров аннотаций и установки плагина IntelliJ Lombok мне также пришлось выполнить Build -> Rebuild Project.
источник
1, установить плагин lombok для IDEA
Intellij Idea -> Настройки -> Плагины -> введите lombok -> Поиск в репозиториях -> установить -> перезапустить IDEA
2 、 конфиг lombok плагин
Включение обработки аннотаций заставит это работать
Но если вы работаете на Mac, убедитесь, что вы включили обработку аннотаций в следующих двух местах:
Intellij Idea -> Настройки -> Построение, выполнение, развертывание -> Компилятор -> Процессоры аннотаций, установите флажок «Включить обработку аннотаций». Файл -> Другие настройки -> Настройки по умолчанию -> Построение, выполнение, развертывание -> Компилятор -> Процессоры аннотаций, установите флажок «Включить обработку аннотаций».
источник
Это не помогло мне ни с одним из перечисленных выше решений. Я добавил
<scope>provided</scope>
к зависимости в pom.xml, и это сработало.источник
Я столкнулся с этой проблемой после обновления IDEA до 2018.3. Мне пришлось обновить все существующие плагины
источник
Перепробовав все предложения здесь, я также нашел другой вид решения. Кажется, что иногда IDEA не может получить процессоры из пути к классам проекта.
Итак, на вкладке «Настройки процессоров аннотации » необходимо вручную указать путь к процессору .
источник
У меня была похожая проблема при сборке с JDK8, вернул проект в JDK7, и он работал нормально. Может быть более старая версия Lombok, которая не будет компилироваться под JDK8.
источник
У меня была та же проблема, поэтому я оставлю это здесь для дальнейшего использования в забвении.
Когда
Alt+Enter
ING на@Slf4j
аннотацию я ошибочно выбрал неверный импорт. Поэтому, если код не компилируется, убедитесь, что вы импортировали:import lombok.extern.slf4j.Slf4j;
источник
FWIW - при настройке аннотаций компилятора, как описано выше, убедитесь, что вы также проверяете любые профили, которые вы используете, такие как «Обработчики аннотаций по умолчанию Maven».
источник
Может случиться так, что даже если вы настроили его правильно и он виден среди библиотек и в списке зависимостей Gradle, IntelliJ все еще не имеет его в пути к классам. Или он есть, но настроен с другой областью действия (например, test вместо compile.)
Во-первых, убедитесь, что у вас установлен плагин и включена обработка комментариев, как указано в других ответах.
Если у вас по-прежнему есть аннотация, не распознанная, поместите курсор на нее, нажмите ALT + ENTER (или OPTION + ENTER) и посмотрите, есть ли у вас пункт меню
Add library: Gragle: org.projectlombok:lombok:VERSION to class path
. Если вы видите это, выберите этот, и это может решить вашу проблему.Вы можете проверить библиотеку и ее область в: Настройки проекта / Модули / Вкладка Зависимости (найдите lombok там)
источник
Если вы попробовали все представленные здесь решения и все еще не можете скомпилировать исходники, также посмотрите здесь: Статический импорт класса компоновщика прерывает генерацию байт-кода в Maven - посмотрите на ваши источники, если есть такой статический импорт. Это влияет на плагин maven, поэтому компиляция не удастся на других системах сборки вне IntelliJ IDEA.
источник
В моем случае все вещи, упомянутые ниже, были у меня на месте, и они все еще не работали.
Чтобы исправить мои проблемы, мне пришлось
Смотрите скриншоты о том, как обновить и перестроить проект ниже.
Как обновить ломбок
Как перестроить проект
источник
Вы можете исправить это
cannot find symbol variable log
при использовании lombok в IntelliJ IDEA 2017.1.3, выполнив следующее:источник
Установите приведенный ниже плагин и перезапустите IDE для устранения ошибок:
Включить процессор аннотаций:
источник
Я столкнулся с подобной проблемой. Следующее сработало для меня.
скачайте (отсюда https://projectlombok.org/download ) и добавьте jar в структуру вашего проекта.
Шаги: Файл -> Структура проекта -> Глобальные библиотеки
источник
Если библиотеки lombok установлены правильно, как упоминалось выше, нажмите аннотацию, которая не будет компилироваться, Alt-Enter, появится правильный импорт, и код скомпилируется. - Мне понадобилось время, чтобы понять это. Я положил это здесь на всякий случай, если люди могут упустить простое очевидное.
источник
Для пользователей Eclipse в MacOS сделайте это. Это сработало для меня.
Eclipse.app/Contents/MacOS
каталог.-javaagent:lombok.jar
в конец файла Eclipse.app/Contents/Eclipse/eclipse.ini.Ссылка на это
источник
Помимо упомянутых во всех ответах, я должен добавить приведенный ниже код в конфигурации pom.xml, чтобы заставить mvn clean install работать. Перед добавлением этого кода я получал не найденный символ для методов получения и установки.
источник
Для меня, что сработало:
источник
В IntelliJ IDEA 2020.1.1 включение плагина Kotlin решило эту проблему.
источник