Я использовал установщик 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, и теперь она появляется в окне «О программе», но я все еще получаю ошибки везде, где пытаются использовать эти сгенерированные методы.
последняя версия 1.18.4, и подойдет, можно ли скопировать и вставить этот лот?
У вас все наоборот — это Lombok, который не полностью совместим с Eclipse, потому что Lombok — это тот, который вы внедряете в JVM.
@nitind, ты прав, спасибо!
Lombok 1.18.4 выпущен 30 октября 2018 г. Для Eclipse 2024-06 необходим Lombok 1.18.34, выпущенный четыре дня назад: stackoverflow.com/a/78664042/6505250
Это решило проблему со структурой и коробкой, но ничего не компилируется.
Вы делали «Проект > Очистить...»?
Я использую eclipse 2024-06 с ломбоком 1.18.32, и все работает. Вы установили ломбок, запустив банку Lombok, или другим способом?
Текущая версия Lombok — v1.18.34. Вам следует установить его; мы исправили несколько вещей, которые очень похожи на то, с чем вы столкнулись.
Если вы это сделали, но ошибки по-прежнему наблюдаются, убедитесь, что вы полностью запустили проект. Или закройте и снова откройте все проекты.
также моя версия Java где-то в eclipse, которую я не смог найти, была установлена на Java 17
Какую версию Ломбок вы используете? Иногда новые версии eclipse не полностью совместимы с последними версиями Lombok. Так что попробуйте понизить ломбок до предыдущей версии. Также откройте билет на странице GitHub Lombok: github.com/projectlombok/lombok/issues