Сборка с использованием Lombok's @ Slf4j и Eclipse: не удается найти журнал символов

У меня есть плагин lombok в Eclipse и включена обработка аннотаций в Eclipse под компилятором java, но он все равно не может распознать операторы журнала, когда я использую аннотацию @ Slf4j.

Надо ли делать какие-то другие настройки?


person bashwin    schedule 18.05.2013    source источник
comment
Lombok генерирует реальные методы в байт-коде. Взгляните на аннотацию Slf4j. Ищет метод / поле? Ломбок должен скомпилироваться до этого. Убедитесь, что затмение правильно настроено для Ломбока.   -  person Daniel B. Chapman    schedule 18.05.2013
comment
Можете ли вы сказать мне, что вы имеете в виду, говоря «Убедитесь, что eclipse правильно настроен для Ломбока».   -  person bashwin    schedule 19.05.2013
comment
Вы установили Lombok через установщик? Убедитесь, что @Data POJO показывает методы для getter / setter / toString. Lombok заставляет байт-код компилировать методы. Это его Магия. Вот почему я предполагаю, что он не установлен (просто предположение)   -  person Daniel B. Chapman    schedule 20.05.2013
comment
Вы абсолютно правы !! Спасибо за вашу помощь. Так и не понял, что лобмбак нужно устанавливать отдельно. Загрузил lombak jar и установил вручную .. это помогло ..   -  person bashwin    schedule 20.05.2013
comment
Возможный дубликат Не удается заставить Project Lombok работать в Eclipse (Helios)   -  person Kukeltje    schedule 01.11.2019


Ответы (5)


Вам также необходимо установить Lombok в Eclipse.

См. Также этот ответ о том, как это сделать. это или проверьте, правильно ли установлен Lombok.

Полное раскрытие информации: я являюсь одним из разработчиков Project Lombok.

person Roel Spilker    schedule 24.05.2013
comment
Почему это не может быть похоже на плагин m2 eclipse? - person Stephane; 03.02.2016
comment
Я добавляю, чтобы удалить записи из моих файлов STS.ini и перезапускаю Eclipse. Ломбок заставлял его строить вечно. - person Stephane; 03.02.2016
comment
Я понятия не имею, что вы имеете в виду под плагином m2 eclipse, но lombok не может быть обычным плагином, потому что мы модифицируем существующий код eclipse вместо добавления новых функций. Нам нужно изменить байт-код парсера и компилятора java eclipse, чтобы разрешить завершение кода и т. Д. В противном случае нам пришлось бы заменить все инструменты разработки java. - person Roel Spilker; 03.02.2016
comment
@RoelSpilker Я написал свою оболочку для журнала. Я хочу использовать свою реализацию оболочки. Как это сделать с помощью аннотации ??? - person vaibhav; 25.02.2017
comment
Я не думаю, что у вас получится сделать это с помощью этой аннотации. Если вы используете Slf4j, вы можете зарегистрировать там свою реализацию. - person Roel Spilker; 27.02.2017
comment
Если мой проект maven, почему мне все еще нужен плагин eclipse даже после добавления lambok jar в качестве зависимости в pom? Я не понимаю причины ... - person Stunner; 07.10.2020

У меня такая же ошибка даже после установки Lombok. Для меня решением было добавить еще одну аннотацию lombok (я использовал @Data) в мой класс, после чего ошибки затмения исчезли. Возможно, эта сила обновила какой-то кеш.

Конечно, потом я просто удалил аннотацию @Data.

person Hervian    schedule 27.06.2018
comment
Спасибо за этот ответ. Мне удалось исправить свою проблему, запустив чистую сборку. Моя проблема была не в IDE, а во время самой сборки. - person arry36; 06.02.2019
comment
Я пробовал это. Но он разрешил ошибку только в этом конкретном файле класса. - person Manish Bansal; 08.08.2020

Я также столкнулся с аналогичной проблемой в журнале и @ Slf4j в моей среде STS. Чтобы решить эту проблему, вот что я сделал с набором инструментов Spring (sts-4.4.0.RELEASE) и lombok-1.18.10.jar (текущая последняя версия доступна в mavenrepository).

  1. Если у вас есть проект maven, убедитесь, что к нему добавлена ​​зависимость lombok. В противном случае вам нужно вручную добавить банку в путь к классам вашего проекта.

    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> <scope>provided</scope> </dependency>

  2. Чистая сборка приложения maven. Это загрузит lombok jar в ваше местоположение .m2 по умолчанию из репозитория maven. Путь будет org\projectlombok\lombok\1.18.10\

  3. Теперь откройте командную строку, перейдите по пути ломбока и выполните команду java -jar lombok-1.18.10.jar.

    C:\xxx\xxx\org\projectlombok\lombok\1.18.10>java -jar lombok-1.18.10.jar

  4. Открывает диалоговое окно ломбока. Если отображается сообщение Can't find IDE Щелкните Specify location... Укажите путь к корневому расположению STS.

    В моем случае это C:\apps\sts-4.4.0.RELEASE\SpringToolSuite.exe

    Install/Update

  5. Успешная установка Нажмите «Выйти из установщика».

  6. Теперь в проводнике перейдите к корневому пути STS. C:\apps\sts-4.4.0.RELEASE\ Мы видим, что lombok.jar помещается в корневой путь sts. Теперь отредактируйте в блокноте SpringToolSuite4.ini файл. Мы видим следующее, добавленное в конце.

    -javaagent:C:\apps\sts-4.4.0.RELEASE\lombok.jar

  7. Запустите STS с помощью SpringToolSuite4.exe Clean, перестройте свой проект.

person vinsinraw    schedule 17.10.2019
comment
Это сработало как шарм! Большое спасибо! Сначала я не выполнял цикл STS, но как только я вышел и перезапустился, я смог очистить, собрать и запустить приложение. - person sp_conway; 18.09.2020

это исправило меня, добавив зависимость slf4j, Lombok может идентифицировать slf4j, но не получает загрузку, это верно для проекта java, если вы используете весеннюю загрузку, тогда slf4j идет по умолчанию.

вот мои зависимости

    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>




    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.6</version>
        <scope>provided</scope>
    </dependency>
person Naveen    schedule 17.11.2019

Как и другие, я тоже столкнулся с этой проблемой. Ниже то, что я сделал.

  1. Установлен lombok.jar, как описано здесь.
  2. Пытался перезапустить затмение. (Не работает)
  3. Пробовал освежить проект Gradle. (Не работает)
  4. попробовал то, что предложил Эрвиан в своем ответе здесь. (Не работает)
  5. Закрыл проекты, удалил из рабочей области, а затем повторно импортировал. Бам !! Работал.
person Manish Bansal    schedule 08.08.2020