Версия Eclipse 24-6 не работает с плагином Lombok

Я использовал установщик lombok.jar для eclipse, он изменил мой файл eclipse.ini.

-startup
plugins/org.eclipse.equinox.launcher_1.6.800.v20240513-1750.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.1000.v20240507-1834
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426- 
   1530/jre/bin
-vmargs
-javaagent:C:/Users/me/eclipse/2024-03/lombok.jar
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclientjava
-Dosgi.requiredJavaVersion=21
[email protected]/eclipse-workspace
-Dosgi.dataAreaRequiresExplicitInit=true
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true
-Declipse.e4.inject.javax.warning=false
-Dsun.java.command=Eclipse
-Xms256m
-Xmx2048m
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Djava.security.manager=allow

каждый класс ломбок не компилируется, потому что eclipse не знает о сборщиках, геттерах, сеттерах или конструкторах У меня есть файл lombok.jar в базовом каталоге eclipse.
Я запускаю eclipse, дважды щелкнув файл eclipse.exe.

Вот простейший пример класса

@Builder
@AllArgsConstructor
@Data
public class ClientAccount {

    @Size(max = 30)
    private String accountName;

    @Size(max = 50)
    private String accountReference;

    @NotNull
    @Size(max = 32)
    private String clientId;

    @NotNull
    @Size(max = 64)
    private String clientSecretKey;

    private LocalDateTime keyLastUpdated;
}

Если я запускаю maven в командной строке, он генерирует правильный код (чтобы увидеть это, я использовал декомпилятор)

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.time.LocalDateTime;
import lombok.Generated;

public class ClientAccount {
   @Size(
      max = 30
   )
   private String accountName;
   @Size(
      max = 50
   )
   private String accountReference;
   @NotNull
   @Size(
      max = 32
   )
   private String clientId;
   @NotNull
   @Size(
      max = 64
   )
   private String clientSecretKey;
   private LocalDateTime keyLastUpdated;

   @Generated
   public static com.pancredit.equifax.model.ClientAccount.ClientAccountBuilder builder() {
      return new com.pancredit.equifax.model.ClientAccount.ClientAccountBuilder();
   }

   @Generated
   public ClientAccount(final String accountName, final String accountReference, final String clientId, final String clientSecretKey, final LocalDateTime keyLastUpdated) {
      this.accountName = accountName;
      this.accountReference = accountReference;
      this.clientId = clientId;
      this.clientSecretKey = clientSecretKey;
      this.keyLastUpdated = keyLastUpdated;
   }

   @Generated
   public String getAccountName() {
      return this.accountName;
   }

   @Generated
   public String getAccountReference() {
      return this.accountReference;
   }

   @Generated
   public String getClientId() {
      return this.clientId;
   }

   @Generated
   public String getClientSecretKey() {
      return this.clientSecretKey;
   }

   @Generated
   public LocalDateTime getKeyLastUpdated() {
      return this.keyLastUpdated;
   }

   @Generated
   public void setAccountName(final String accountName) {
      this.accountName = accountName;
   }

   @Generated
   public void setAccountReference(final String accountReference) {
      this.accountReference = accountReference;
   }

   @Generated
   public void setClientId(final String clientId) {
      this.clientId = clientId;
   }

   @Generated
   public void setClientSecretKey(final String clientSecretKey) {
      this.clientSecretKey = clientSecretKey;
   }

   @Generated
   public void setKeyLastUpdated(final LocalDateTime keyLastUpdated) {
      this.keyLastUpdated = keyLastUpdated;
   }

У меня в проекте включены аннотации

но где бы он ни использовался, я получаю ошибки компиляции

Метод getClientId() не определен для типа ClientAccount, строка 43. Проблема Java
или
Метод builder() не определен для типа ClientAccount, строка 12. Проблема Java.

Изменить. Я только что обновился до версии Lombok 1.18.34, и теперь она появляется в окне «О программе», но я все еще получаю ошибки везде, где пытаются использовать эти сгенерированные методы.

Какую версию Ломбок вы используете? Иногда новые версии eclipse не полностью совместимы с последними версиями Lombok. Так что попробуйте понизить ломбок до предыдущей версии. Также откройте билет на странице GitHub Lombok: github.com/projectlombok/lombok/issues

Jorge Campos 02.07.2024 19:38

последняя версия 1.18.4, и подойдет, можно ли скопировать и вставить этот лот?

WendyG 02.07.2024 19:39

У вас все наоборот — это Lombok, который не полностью совместим с Eclipse, потому что Lombok — это тот, который вы внедряете в JVM.

nitind 02.07.2024 19:41

@nitind, ты прав, спасибо!

Jorge Campos 02.07.2024 19:44

Lombok 1.18.4 выпущен 30 октября 2018 г. Для Eclipse 2024-06 необходим Lombok 1.18.34, выпущенный четыре дня назад: stackoverflow.com/a/78664042/6505250

howlger 02.07.2024 20:10

Это решило проблему со структурой и коробкой, но ничего не компилируется.

WendyG 02.07.2024 20:18

Вы делали «Проект > Очистить...»?

howlger 02.07.2024 20:29

Я использую eclipse 2024-06 с ломбоком 1.18.32, и все работает. Вы установили ломбок, запустив банку Lombok, или другим способом?

SpaceTrucker 02.07.2024 21:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
8
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Текущая версия Lombok — v1.18.34. Вам следует установить его; мы исправили несколько вещей, которые очень похожи на то, с чем вы столкнулись.

Если вы это сделали, но ошибки по-прежнему наблюдаются, убедитесь, что вы полностью запустили проект. Или закройте и снова откройте все проекты.

также моя версия Java где-то в eclipse, которую я не смог найти, была установлена ​​на Java 17

WendyG 03.07.2024 10:49

Другие вопросы по теме