Lombok nie generuje metody pobierającej i ustawiającej


106

Właśnie próbowałem wysłać projekt oparty na Mavenie do innego komputera i HORROR, wszędzie czerwone znaczniki !!

Jednak mvn clean installbuduje się dobrze.

Szybko zauważyłem, że Lombok nie generuje metod pobierających i ustawiających dla moich klas, chociaż @Getteri @Settersą poprawnie rozpoznawane przez Eclipse.

Oba komputery używają tej samej wersji Maven (3.0.4), ale różnych zestawów JDK (1.6_23 i 1.6_33). Obaj używają 32-bitowego Eclipse Indigo. Masz pomysł, jak rozwiązać problem?


Aby uzyskać pełne instrukcje, zobacz stackoverflow.com/questions/3418865/… . Obejmuje to również sposób uruchamiania Eclipse za pomocą skrótu.
Roel Spilker


Wykonałem wszystkie powyższe kroki, ALE to nadal nie działało. Ponownie spojrzałem na pom.xml i wykomentowałem <! - <optional> true </optional> ->, które pojawiło się domyślnie. Później dodałem to <! - <scope> dostarczone </scope> -> ale również to skomentowałem.
logixplayer

Odpowiedzi:


146

Rozpoczynając od nowej instalacji zaćmienia, w rzeczywistości należy „zainstalować” Lombok, zanim będzie można go używać.

  1. Idź tam, gdzie znajduje się słoik Lombok (np. Możesz go znaleźć ~/.m2/repository/org/projectlombok/lombok/1.16.10/lombok-1.16.10.jar), uruchom go (Przykład java -jar lombok-1.16.10.jar:) Powinno pojawić się okno, przejdź do swojej eclipse.exelokalizacji.
  2. Kliknij zainstaluj.
  3. Uruchom Eclipse, zaktualizuj konfigurację projektu we wszystkich projektach i voila.

15
Jeśli nawet po wykonaniu powyższych czynności to nie zadziała, WYJDŹ i ZACZNIJ ponownie zaćmienie. Prosty plik-> Uruchom ponownie nie działa. Konieczne jest jawne EXIT i Start.
nanosoft

1
Wydaje

2
Jeśli był zamknięty, dobrze działa przy następnym uruchomieniu. Ale jeśli jest już uruchomiony i wymagane jest jawne WYJŚCIE i rozpoczęcie.
nanosoft

2
Dobra robota @Elidosa --- Działa, ale tak, trzeba wyjść i rozpocząć zaćmienie, tylko ponowne uruchomienie nie działa
SMT

Musiałem również wyczyścić projekty, aby usunąć błędy kompilacji
Aditya

89
  • Jeśli używasz STS . Musisz mieć zainstalowany Lombok w swoim Eclipse, uruchamiając lombok-xyz.jar

  • Spróbuj wykonać następujące czynności:

    1. Dołącz pom w Maven.
    2. Wyjście / wyłączenie STS
    3. Znajdź lombok Jar w ~ / .m2 / repository / org / projectlombok / lombok / version.x
    4. Z wiersza polecenia / powłoki java -jar lombok-1.x.y.jar Instalator projektu Lombok

    5. Uruchom STS

To wszystko.

EDYCJA : Zrobiłem to i nadal wyświetlałem błędy, jak wspomniano w komentarzach. Więc zaktualizowałem projekt: kliknij prawym przyciskiem myszy projekt -> Maven -> Aktualizuj projekt i błędy zniknęły.


Nadal mam problem i nie jestem pewien, co się dzieje?
Pra_A

Czy masz jakiś komunikat o błędzie? Czy możesz zaimportować klasę do swoich plików Pojo?
GoutamS

@Prateek W przypadku, gdy nie działa, zmień
wersję

1
Pobrałem plik lombok.jar ręcznie, uruchomiłem go, a później ponownie uruchomiłem zaćmienie i przebudowałem projekty, działa! ...
ArifMustafa

Miałem ten sam problem, próbowałem wszystkiego, ale nie działało. Następnie zainstalowałem na nowo i zanim cokolwiek zrobiłem, zainstalowałem Lombok. Zadziałało. Upewnij się również, że zaczynasz od nowego obszaru roboczego. Nie działało ze starym.
Rajeev

50

Zwróć uwagę, że jeśli używasz IntelliJ, będziesz chciał zainstalować wtyczkę Lombok (dostępną w ustawieniach IDE), a także włączyć przetwarzanie adnotacji.


20
Nadal kilku z nich przyszło do tego wątku, gdy mieli do czynienia z tym samym i nie wiedząc, czy wtyczka jest potrzebna dla IntelliJ. kciuki w górę
Vaibs

8

Jeśli używasz eclipse. Musisz mieć zainstalowany lombok w swoim Eclipse, uruchamiając lombok-xyz.jar (np. Możesz go znaleźć w ~/.m2/repository/org/projectlombok/lombok/1.12.6/lombok-1.12.6.jar).

Po otwarciu okna instalacji musisz wybrać lokalizację swojego Eclipse. I niech zainstaluje lombok w środku. Następnie musisz ponownie uruchomić Eclipse.


2
„Wyraźnie wyjdź i zacznij ponownie.”. Normalny plik -> Uruchom ponownie nie działa.
nanosoft

6

Są to instrukcje wiersza poleceń, w których powyższa wersja graficzna nie jest dostępna lub nie można otworzyć pliku jar Lombok za pomocą podwójnych kliknięć, jak w Ubuntu.

W chwili pisania tego tekstu korzystanie z Lombok nie jest proste, jak po prostu dodanie zależności w pliku POM xml i dodanie adnotacji. Oto kolejne kroki:

1) Zlokalizuj miejsce, w którym maven pobrał plik jar Lombok; Zwykle znajduje się w folderze .m2 w katalogu domowym. Następnie wykonaj następujące polecenie.

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

przykład użycia:

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/

powyższe polecenie w zasadzie powoduje aktualizację konfiguracji w twoim IDE .inilub configurationpliku jak poniżej:

-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

zapewnia to, że adnotacje @Datalub @Getterlub @Settersą zrozumiałe dla środowiska IDE. To dziwne, że musiało być tak skomplikowane.


tutaj jestem w roku 2020 nadal uważam, że twój post jest przydatny. Dzięki!
YazidEF

U mnie też to zadziałało. Dzięki.
Chintan Patel

6

Pobierz Lombok Jar, zróbmy to w naszym imieniu:

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

Teraz ... komenda mvn clean install w nowo utworzonym projekcie, aby pobrać ten jar do lokalnego repozytorium. Przejdź do lokalizacji jar, uruchom wiersz polecenia, uruchom polecenie: java -jar lombok-1.16.18.jar

wprowadź opis obrazu tutaj

kliknij przycisk „Określ lokalizację” i znajdź ścieżkę eclipse.exe JAK: wprowadź opis obrazu tutaj

na koniec zainstaluj to, klikając „Zainstaluj / Aktualizuj”


To najprostsze rozwiązanie, jakie znalazłem do tej pory. Zadziałało. Dzięki.
Freelancer

2

Dla Sprint STS - umieść plik lombok.jar w folderze eclipse / sts exe i dodaj następujący wpis do STS.ini.

-javaagent:lombok.jar

2

Jeśli używasz maven i Eclipse, należy je zainstalować ręcznie.

  1. Sprawdź pom

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

  1. przejdź do Maven Dependencies

wprowadź opis obrazu tutaj

  1. Kliknij prawym przyciskiem myszy bibliotekę i Uruchom jako aplikację Java

wprowadź opis obrazu tutaj

  1. Określ lokalizację IDE, zainstaluj i zamknij IDE (Eclipse). wprowadź opis obrazu tutaj

Wykonałem wszystkie opisane przez Ciebie kroki, ale w przypadku eclipse 2019-12 i lombok 1.18.12 eclipse nie rozpoznaje, że w moim modelu jest adnotacja \ @getter lub \ @setter. Czy w ogóle istnieje getter lub setter wygenerowany przez lombok?
Ben

1

Korzystam ze studia deweloperskiego Red hat Jboss. Rozwiązałem ten problem poprzez:

  1. Projekt ma lombokzależność. Najpierw zajrzyj do swojego .m2 repozytorium i znajdź lomboksłoik

  2. Kliknij dwukrotnie słoik, zobaczysz tam instalator określający ścieżkę do IDE, np C:\Users\xxx\devstudio\studio\devstudio.exe

  3. Zrestartuj IDE i zaktualizuj projekt Maven, błąd wystąpi


1
Witamy w StackOverflow! Spróbuj napisać swoje odpowiedzi bardziej czytelnie, używając poprawnych list i markdown language like this.
MS Berends,

1

1) Uruchom polecenie java -jar lombok-1.16.10.jar. Należy to uruchomić z katalogu, w którym znajduje się plik lombok.jar.

2) Dodaj lokalizację ręcznie, wybierając plik eclipse.ini (zainstalowany katalog eclipse). Poprzez „ Określ lokalizację

Uwaga: nie dodawaj pliku eclipse.exe, ponieważ spowoduje to uszkodzenie edytora eclipse.

Jak dodać plik eclipse.ini


1

Również napotkałem ten problem, w moim przypadku, ponieważ aktualizuję mój IntelliJ IDEA bez aktualizacji wtyczki Lombok. Więc są niekompatybilne.


Po prostu zaktualizuj wtyczkę Lombok w Intellij Idea i uruchom ponownie IDE
Daria Yu,

1

samo dodanie zależności Lombok nie wystarczy. Będziesz musiał także zainstalować wtyczkę Lombok.

Możesz pobrać plik jar Lombok, przechodząc przez (tylko jeśli dodałeś zależność w którymkolwiek z POM).

m2 \ repozytorium \ org \ projectlombok \ lombok \ 1.18.12 \ lombok-1.18.12

Ponadto, jeśli Lombok nie może znaleźć IDE, ręcznie określ plik .exe swojego IDE i kliknij zainstaluj.

Zrestartuj swoje IDE.

Otóż ​​to.

Jeśli napotkasz jakiś problem,

Poniżej znajduje się piękny i krótki film o tym, jak zainstalować wtyczkę Lombok.

Aby zaoszczędzić czas, możesz zacząć od 1:40.

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

Jeśli nadal nie działa,

Sprawdź, czy lombok.jar znajduje się w twoim pliku sts.ini (plik konfiguracyjny sts, obecny w folderze sts).

-javaagent: lombok.jar

Wykonaj Alt + F5. To zaktualizuje Twojego maven.

Zamknij IDE i uruchom je ponownie.


1
Dlaczego ta odpowiedź nie dała ani jednego głosu. To naprawdę pomogło. Dzięki za tonę.
sofy 1

1

Użytkownik Intellij, upewnij się, że masz 3 rzeczy,

  1. Zależność Lombok
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
            <scope>provided</scope>
        </dependency>
  1. Wtyczka IntelliJ dla Lombok

  2. Adnotacja Lombok, na przykład @Getter @Setter(upewnij się, że pochodzi z lombok, a nie z innego miejsca)

i powinno działać.


0

Używając lombok na nowej instalacji Eclipse lub STS, musisz:

  1. Zainstaluj jar lombok, który możesz pobrać ze strony https://projectlombok.org/download . Uruchom jar (jako Administrator, jeśli używasz systemu Windows) i określ ścieżkę do instalacji Eclipse / STS.

  2. Zrestartuj swoje IDE (Eclipse lub STS)

  3. Daj trochę czasu, aby zaćmienie wygenerowało pliki klas dla lomboka (w niektórych przypadkach może to zająć do 4 minut)


0

W przypadku Spring ToolSuite 4 na Macu zmienili nazwę ini na SpringToolSuite4.ini.

Możesz zmienić jego nazwę lub skopiować go do STS.ini, aby był rozpoznawany przez lombok. Następnie skopiuj go z powrotem do oryginalnej nazwy do odczytania przez IDE. (Nie próbowałem jednak, czy dowiązania symboliczne działają).



0

To, co musiałem zrobić, to zainstalować lombokw katalogu instalacyjnym eclipse.

Pobrać lombok.jarz tutaj , a następnie zainstalować go za pomocą następującego polecenia:

java -jar lombok.jar

Następnie upewnij się, że lombok.jarzostał dodany do ścieżki kompilacji. Ale upewnij się, że nie dodasz go dwukrotnie, dodając raz przez mavenlub gradlei jeszcze raz na ścieżce zaćmienia.

Potem cleani buildprojekt ponownie i zobacz, jak wszystkie błędy znikają.


0

Jeśli używasz STS. Musisz mieć zainstalowany Lombok w swoim Eclipse, uruchamiając lombok-abc.jar

Wykonaj następujące kroki:

-Włącz pom w Maven. -Exit / Shutdown STS (must) -Find lombok Jar w ~ .m2 \ repository \ org \ projectlombok \ lombok \ 1.18.12 -From Command wprowadź opis obrazu tutaj

Po tym wprowadź opis obrazu tutaj

Następnie wybierz STS.exe wprowadź opis obrazu tutaj

Następnie kliknij, aby zaktualizować / zaktualizować

wprowadź opis obrazu tutaj

następnie zamknij instalator

Miłego kodowania

Zablokować cytat


jest to podwójna odpowiedź
Tiago Medici


-1

Jeśli używasz mavena, przejdź do zależności maven w strukturze projektu, a następnie uruchom lombok jar jako projekt java, który go zainstaluje, a następnie zamknij i uruchom eclipse

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.