Lombok не генерирует геттер и сеттер


102

Я только что пытался отправить проект на основе Maven на другой компьютер и УЖАС, красные маркеры везде !!

Однако mvn clean installстроится просто отлично.

Я быстро заметил, что Lombok не генерирует геттеры и сеттеры для моих классов, хотя @Getterи @Setterправильно распознаются Eclipse.

Оба компьютера используют одну и ту же версию Maven (3.0.4), но разные JDK (1.6_23 и 1.6_33). Оба они используют 32-разрядную версию Eclipse Indigo. Есть идеи, как решить проблему?


Полные инструкции см. На stackoverflow.com/questions/3418865/… . Это также включает в себя запуск Eclipse с помощью ярлыка.
Роэл Спилкер

возможный дубликат Cannot
Make

Я сделал все вышеперечисленные шаги, НО все еще не работало. Я снова посмотрел на pom.xml и закомментировал <! - <optional> true </optional> ->, который пришел по умолчанию. Позже я добавлю это <! - <scope> provided </scope> ->, но также закомментировал его.
logixplayer

Ответы:


143

При запуске новой установки eclipse вам, по сути, необходимо «установить» Lombok, прежде чем вы сможете его использовать.

  1. Идите туда, где находится ваш Lombok jar (например (например, вы можете найти в нем ~/.m2/repository/org/projectlombok/lombok/1.16.10/lombok-1.16.10.jar), запустите его (Пример:) java -jar lombok-1.16.10.jar. Должно появиться окно, перейдите к вашему eclipse.exeместоположению.
  2. Нажмите на установку.
  3. Запустите Eclipse, обновите конфигурацию проекта для всех проектов и вуаля.

15
Если даже после выполнения вышеуказанных шагов это не сработает, то снова выполните EXIT и START eclipse. Простой файл-> Перезагрузка не работает. Явный EXIT и Start необходим.
nanosoft 04


2
Если он был закрыт, нормально работает при следующем запуске. Но если он уже запущен и требуется явный ВЫХОД и запуск.
nanosoft 05

2
Молодец @Elidosa --- Он работает, но да, нужно выйти и запустить eclipse, только перезапуск не работает
SMT

Мне также нужно было очистить проекты, чтобы удалить ошибки компиляции
Адитья

84
  • Если вы используете STS . У вас должен быть установлен Lombok в вашем Eclipse, запустив lombok-xyz.jar

  • Пожалуйста, попробуйте выполнить следующие шаги:

    1. Включите pom в Maven.
    2. Выход / выключение STS
    3. Найдите lombok Jar в ~ / .m2 / repository / org / projectlombok / lombok / version.x
    4. Из командной строки / оболочки java -jar lombok-1.x.y.jar Установщик Project Lombok

    5. Запустить СТС

Вот и все.

РЕДАКТИРОВАТЬ : Я сделал это и все еще показывал ошибки, как упоминалось в комментариях. Итак, я обновил проект: щелкните правой кнопкой мыши проект -> Maven -> Обновить проект, и ошибки исчезли.


Тем не менее, я столкнулся с проблемой, не уверен, что происходит?
Pra_A

Есть ли у вас сообщение об ошибке? Можете ли вы импортировать класс в свои файлы Pojo?
GoutamS 05

@Prateek Если не работает, поменяйте версию ломбока и попробуйте еще раз
GoutamS

1
Я загрузил lombok.jar вручную, запустил его, а затем перезапустил eclipse и пересобирал проекты, все
заработало

У меня была такая же проблема, я пробовал все, но не работал. Затем я установил все заново и, прежде чем что-либо делать, установил Lombok. Это сработало. Кроме того, убедитесь, что вы начали с новой рабочей области. Со старым не получилось.
Раджив

45

Обратите внимание: если вы используете IntelliJ, вам нужно установить плагин Lombok (доступный в настройках IDE), а также включить обработку аннотаций.


17
Тем не менее, некоторые из них пришли бы в этот поток, когда столкнулись с одним и тем же и не знали, нужен ли плагин для IntelliJ. палец вверх
Vaibs

Мне например пригодился. Я использую Intellij! Спасибо!
Питер Салай

8

Если вы используете eclipse. У вас должен быть установлен lombok в вашем Eclipse, запустив lombok-xyz.jar (например, вы можете найти его ~/.m2/repository/org/projectlombok/lombok/1.12.6/lombok-1.12.6.jar).

Когда откроется окно установки, вы должны выбрать местоположение вашего Eclipse. И пусть внутри установит ломбок. После этого вы должны перезапустить Eclipse.


2
«Явно выйти, а затем начать снова». Обычный файл -> Перезагрузка не работает.
nanosoft 04

6

Загрузите Lombok Jar, пусть maven выполнит загрузку от нашего имени:

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

Теперь ... команда mvn clean install во вновь созданном проекте, чтобы загрузить этот jar-файл в локальный репозиторий. Перейдите в расположение jar, выполните командную строку, выполните команду: java -jar lombok-1.16.18.jar

введите описание изображения здесь

щелкните по кнопке «Указать местоположение» и найдите путь к eclipse.exe КАК: введите описание изображения здесь

наконец установите это, нажав «Установить / Обновить»


Это самое простое решение, которое я нашел до сих пор. Это сработало. Спасибо.
Фрилансер

5

Это инструкции командной строки, в которых указанная выше графическая версия недоступна или вы не можете открыть файл jar Lombok двойным щелчком, как в Ubuntu.

На момент написания использовать Lombok было непросто, просто добавить зависимость в ваш XML-файл POM и добавить аннотацию. Это следующие шаги:

1) Найдите, где maven загружает ваш файл jar Lombok; Обычно он находится в папке .m2 внутри вашего домашнего каталога. Затем выполните следующую команду.

java -jar lombok-1.16.18.jar install <path of where your IDE is installed>

пример использования:

java -jar lombok-x.xx.xx.jar install ~/Downloads/spring-tool-suite-3.9.1.RELEASE-e4.7.1a-linux-gtk-x86_64/sts-bundle/sts-3.9.1.RELEASE/

приведенная выше команда в основном выполняет обновление конфигурации в вашей среде IDE .iniили configurationфайл, как показано ниже:

-javaagent:/home/neshant/Downloads/spring-tool-suite-3.9.1.RELEASE-e4.7.1a-linux-gtk-x86_64/sts-bundle/sts-3.9.1.RELEASE/lombok.jar

это гарантирует, что аннотации @Dataor @Getterили @Setterбудут понятны IDE. Странно, что это было так сложно.


вот я в 2020 году все еще считаю ваш пост полезным. Спасибо!
YazidEF

2

Для Sprint STS - поместите файл lombok.jar в папку eclipse / sts exe и добавьте следующую запись в STS.ini.

-javaagent:lombok.jar

1

Я использую студию разработчиков Red Hat Jboss. Я решил эту проблему:

  1. У проекта есть lombokзависимость. Сначала загляните в свой .m2 репозиторий и найдите lombokбанку

  2. Дважды щелкните банку, вы увидите, что установщик там указывает путь для IDE, например C:\Users\xxx\devstudio\studio\devstudio.exe

  3. Перезагрузите IDE и обновите проект maven, ошибка пойдет


1
Добро пожаловать в StackOverflow! Постарайтесь, чтобы ваши ответы были более читабельными, используя правильные списки и markdown language like this.
MS Berends

1

1) Запускаем команду java -jar lombok-1.16.10.jar. Это необходимо запустить из каталога вашего файла lombok.jar.

2) Добавьте местоположение вручную, выбрав файл eclipse.ini (установленный каталог eclipse). Через « Указать местоположение »

Примечание: не добавляйте eclipse.exe, потому что это приведет к повреждению редактора eclipse.

Как добавить файл eclipse.ini


1

В моем случае я также столкнулся с этой проблемой, потому что я обновляю свою IntelliJ IDEA без обновления плагина Lombok. Значит, они несовместимы.


Просто обновите плагин Lombok в Intellij Idea и перезапустите IDE
Дарья Ю

1

просто добавить зависимость Lombok недостаточно. Вам также придется установить плагин Lombok.

Вы можете получить свой jar-файл Lombok, перейдя по нему (только если вы добавили зависимость в любой из POM.)

m2 \ репозиторий \ org \ projectlombok \ lombok \ 1.18.12 \ lombok-1.18.12

Кроме того, если Lombok не может найти IDE, вручную укажите .exe вашей IDE и нажмите «Установить».

Перезагрузите IDE.

Вот и все.

Если у вас возникнут проблемы,

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

Чтобы сэкономить время, можно начать с 1:40.

https://www.youtube.com/watch?v=5K6NNX-GGDI

Если все еще не работает,

Убедитесь, что lombok.jar присутствует в вашем файле sts.ini (файл конфигурации sts, находится в папке sts).

-javaagent: lombok.jar

Нажмите Alt + F5. Это обновит ваш maven.

Закройте IDE и снова запустите.


1
Почему за этот ответ не было ни единого голоса. Это действительно помогло. Благодаря тонну.
sofs1

1

Если вы используете maven и Eclipse, необходимо установить его вручную.

  1. Проверить пом

 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <type>jar</type>
        </dependency>

  1. перейти к Maven Dependencies

введите описание изображения здесь

  1. Щелкните правой кнопкой мыши в библиотеке и запустите как приложение Java.

введите описание изображения здесь

  1. Укажите местоположение IDE, установите и закройте IDE (Eclipse). введите описание изображения здесь

Я выполнил все описанные вами шаги, но с eclipse 2019-12 и lombok 1.18.12 eclipse не распознает, что в моей модели есть аннотация \ @getter или \ @setter. Есть ли вообще геттер или сеттер, сгенерированный ломбоком?
Бен

1

Пользователь Intellij, убедитесь, что у вас есть 3 вещи,

  1. Ломбокская зависимость
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
            <scope>provided</scope>
        </dependency>
  1. Плагин IntelliJ для Lombok

  2. Аннотации @Getter @Setterломбока , например (убедитесь, что она исходит от ломбока, а не откуда-то еще)

и он должен работать.


0

При использовании lombok на новой установке Eclipse или STS вам необходимо:

  1. Установите банку ломбока, которую вы можете получить по адресу https://projectlombok.org/download . Запустите jar (от имени администратора при использовании Windows) и укажите путь к вашей установке Eclipse / STS.

  2. Перезагрузите IDE (Eclipse или STS)

  3. Подождите, пока eclipse сгенерирует файлы классов для ломбока (в некоторых случаях это может занять до 4 минут)


0

Для Spring ToolSuite 4 на Mac они переименовали ini в SpringToolSuite4.ini.

Вы можете переименовать или скопировать его в STS.ini, чтобы его распознал lombok. Затем скопируйте его обратно под исходное имя, чтобы его читала среда IDE. (Хотя не пробовал, работают ли символические ссылки.)


0

Загрузите файл Lombok Jar https://projectlombok.org/downloads/lombok.jar

Добавить зависимость от maven:

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

Начать установку Lombok java -jar lombok-1.16.18.jar

найдите полный пример по этой ссылке:
https://howtodoinjava.com/automation/lombok-eclipse-installation-examples/


0

Что мне нужно было сделать, так это установить lombokв каталог установки eclipse.

Скачайте lombok.jarиз здесь , а затем установить его с помощью следующей команды:

java -jar lombok.jar

После этого убедитесь, что lombok.jarв ваш путь сборки добавлен. Но убедитесь, что вы не добавляете его дважды, добавляя один раз mavenили gradleи еще раз в пути eclipse.

После этого cleanи buildснова проект и все ошибки исчезнут.


0

Если вы используете STS. У вас должен быть установлен Lombok в вашем Eclipse, запустив lombok-abc.jar

Пожалуйста, следуйте инструкциям:

-Включить pom в Maven. -Выход / Завершение работы STS (обязательно) -Найти lombok Jar в ~ .m2 \ repository \ org \ projectlombok \ lombok \ 1.18.12 -From Command введите описание изображения здесь

После этого введите описание изображения здесь

После этого выберите STS.exe. введите описание изображения здесь

После нажмите, чтобы обновить / обновить

введите описание изображения здесь

затем выйти из установщика

Счастливое кодирование

Цитата


это дублированный ответ
Тьяго Медичи


-1

Если вы используете maven, перейдите к зависимостям maven в структуре вашего проекта, затем запустите lombok jar в качестве проекта java, он установит его, затем выйдите и запустите eclipse

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.