У меня есть проект maven, который без проблем строится из командной строки. Однако, когда я создаю его с помощью IntelliJ, я получаю сообщение об ошибке:
java: FileName.java:89: cannot find symbol
symbol : variable log
В java-файле нет журнала, определенного или импортированного, но есть
@Slf4j
final public class FileName {
оператор перед телом класса, который должен определять класс журнала.
В окне структуры проекта классы для:
Maven: org.slf4j:jcl-over-slf4j:1.6.1
Maven: org.slf4j:slf4j-api:1.6.6
Maven: org.slf4j:slf4j-log4j12:1.6.6
Maven: org.slf4j:slf4j-simple:1.6.6
перечислены в разделе «Библиотеки» и обозначены как загруженные и доступные.
Любая идея, почему это будет строиться с помощью maven через командную строку, но не через IntelliJ, и как решить проблему?
intellij-idea
slf4j
lombok
user1991839
источник
источник
Ответы:
Помимо установки плагина Lombok , также убедитесь, что
Enable annotation processing
флажок " " установлен под:Примечание. Начиная с IntelliJ 2017,
Enable Annotation Processing
флажок " " перемещен на:источник
Предположительно, это аннотация Lombok @ Slf4j, которую вы используете. Вам потребуется установить плагин Lombok в IntelliJ, если вы хотите, чтобы IntelliJ распознавал аннотации Lombok. В противном случае, чего вы ожидаете, если попытаетесь использовать несуществующее поле?
источник
В Intellij версии 2016, 2017 включить Preferences -> Compiler -> Annotation Processors у меня не работает!
Помогает следующий дополнительный флажок:
источник
2019:
Получите плагин и все готово ...
Файл> Настройки> Плагины
источник
Возможно, я открою мертвую тему, но простое решение - проверить ваши зависимости (например, Maven pom), если вы включаете logback-core и logback-classic .
Slf4j - это просто интерфейс, для работы вам нужна конкретная реализация.
Меня дважды обманули, когда IDEA все испортила, теперь я готов: D
источник
Сработало у меня !!! Это не помогло на CircleCI и на Jenkins.
Если вы являетесь пользователем Gradle, попробуйте добавить в свои зависимости следующее:
источник
В IDEA 13 это больше не проблема, вам просто нужно установить плагин Lombok.
источник
Я только что установил последнюю версию идеи 2108.1 и обнаружил эту проблему, после установки плагина lombok и перезапуска Idea ее разрешите.
источник
Если вы используете maven, попробуйте добавить путь Lombok в
maven-compiler-plugin
список обработчиков аннотаций, как показано ниже.Измените версию в соответствии с вашей версией Lombok. Помимо этого, убедитесь, что вы выполнили следующие
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
. У меня и то,Obtain processors from project classpath
и другоеProcessor path
работает. Поэтому не уверен, что подойдет вам, но попробуйте то, что работает.И вместо того, чтобы снимать в темноте часами. Может помочь небольшое прочтение того, как работают процессоры аннотаций и используются компилятором. так что читайте ниже.
http://hannesdorfmann.com/annotation-processing/annotationprocessing101
источник
Это сработало для меня:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
Установите флажок «Включить обработку аннотаций».
Apply
близко
источник
Я попробовал почти все упомянутые ответы, но у меня ничего не помогло. Моя сборка gradle каждый раз терпела неудачу. Только что нашел это решение:
Добавьте
annotationProcessor 'org.projectlombok:lombok'
свой build.gradle.Это сработало для меня.
источник
Удаление аннотации @ Slf4J из класса с последующим повторным добавлением сработало для меня.
источник
1 Мои зависимости от gradle lombok:
2 После включения «Аннотации ...» в IDEA (Настройки), с учетом того, что вы установили плагин Lombok, я решил ту же проблему.
источник
Я видел эту проблему со старой версией Lombok при компиляции под JDK8. Вернув проект к JDK7, проблема исчезла.
источник
Это не будет проблемой OP, но для всех, кто пробует все безуспешно:
У меня были похожие симптомы. Когда бы я ни строил после a
mvn clean
, он не находилlog
, ниgetXYZ()
, ниbuilder()
, ни чего.Прочитав все ответы, которые я мог найти о проблемах QueryDSL / JPA / Hibernate / Lombok / IntelliJ / Maven безрезультатно, я понял, что виноват один статический импорт
@Getter
метода, который был аннотирован в статическом поле .Весна 1.15.14.RELEASE, Intellij 2019.1.1
источник
Это не проблема IntelliJ. Если вы попробуете под консолью, запустите mvn install , тоже ломается. Все аннотации из lombok.extern требовали добавления зависимостей. Этот пакет группирует следующие аннотации:
Например, для Slf4j необходимо добавить эту зависимость в ваш pom.xml
источник
После включения процессоров аннотаций и установки плагина lombok он по-прежнему не работал. Мы обошли это, проверив опцию Idea «Делегировать сборку IDE в gradle».
источник
Что помогло мне, так это установка флажка «Использовать реестр плагинов» в настройках Maven.
Путь: File -> Preferences -> Build, Execution, Deployment -> Build Tools -> Maven
источник
Удалите папку .idea и файлы .iml в каждом модуле и перестройте решение.
источник
У меня был плагин Lombok, включены аннотации, он компилировался из командной строки - все, и он все еще не видел мой проект как maven (все зависимости maven были красными в исходных файлах). Затем я дважды щелкнул SHIFT и поискал «maven», и среди результатов был «Перезагрузить все проекты Maven». После запуска появилась вкладка Maven, и я смог скомпилировать, и все красные подчеркивания в исходном коде исчезли.
источник
Простая вещь, но я понял, что это: я пропустил добавление
@Log
в класс.Это может кому-то помочь.
источник
У меня такая же проблема; Я использую gradle и IDEA;
Оказывается, это вызвано неправильной версией gradle.
В gradle \ wrapper \ gradle-wrapper.properties это:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
Однако я указал версию в IDEA как
D:\Library\gradle-5.2.1
После снижения версии gradle до 4.10.x проблема исчезла.
источник
Попробуйте создать
lombok.config
файл в базовом каталоге проекта и укажитеlombok.log.fieldName
значение.Пример:
lombok.log.fieldName = LOG
источник