2015-05-27 33 views
6

Mam STS w wersji 3.6.3.SR1, która jest oparta na Eclipse Luna 4.4.1.Problem Lombok i STS - Metoda niezdefiniowana

ja zrobiłem następujące czynności:

1) donwload i uruchomić Lombak runnable słoik i dał ścieżkę moich STS. 2) i zweryfikowała wpisy vmargs, ale brakuje Xbootclasspath i dodano go mieć podobne,

-vmargs 
-Dosgi.requiredJavaVersion=1.6 
-XX:MaxPermSize=256m 
-Dorg.eclipse.swt.browser.IEVersion=10001 
-Xms512m 
-Xmx1024m 
-javaagent:C:\tools\Lombok\lombok.jar 
-Xbootclasspath/a:C:\tools\Lombok\lombok.jar 

3) Mam wyjście i otwarty STS zarówno skrótu, jak również absoulte lokalizacji STS. exe

4) Sprawdziłem zarys moich klas java, które są opatrzone przypisami @Data i innymi adnotacjami lombaka. Widzę wygenerowane generatory i pobierające. Nawet funkcja Auto assist wyświetla tę metodę.

5) Zrobiłem Maven -> Project Update i nawet zrobił projektów Czystej

6) potwierdzono, że Lombak jest zainstalowany, jak również od Około STS z Pomocy.

Nawet po wszystkich powyższych działaniach, istnieje wiele problemów z kompilatorem, które narzucają niezdefiniowaną metodę getXXX() i setXXX() na wszystkich adnotacjach @Data lub @Getter lub @Setter.

Tworzenie kompilacji Mavenu zakończyło się sukcesem, a zachowanie środowiska wykonawczego jest w porządku, ponieważ klasa spełniająca wymagania wydaje się mieć moduły pobierające i ustawiające.

Intelli J wydaje się nie mieć porblem z tym, ponieważ inni programiści mogą korzystać z biblioteki.

Moja pom ma następujący wpis, a także:

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

Jak rozwiązać?

P.S: Pobrałem Eclipse Kepler na bazie STS, aby umożliwić JBoss Fuse Tooling.

+0

Hmm., Czasem trzeba będzie rozpocząć Eclipse/STS jako administrator, a następnie oczyścić i odbudować projektu. To mi pomogło. Właśnie próbowałem tego i to działało. Też obejść mnie przez powyższe obejścia. Powodzenia! Za późno, ale może pomóc innym. – harshavmb

+0

Cool. W międzyczasie przełączyłem się na IntelliJ i używam go od tego czasu :) Ponieważ prawa administratora są zarządzane przez organizację, nie mogłem tego wypróbować. Ale dziękuję. –

Odpowiedz

4

Miałem podobny problem, który został rozwiązany przez zmianę zakresu zależności lobaka w pliku pom.xml.

Pierwotnie zakres został "dostarczony" i uważam, że widziałem wszystkie dziwne zachowania, które opisałeś. Na przykład, do rozwijalnego uzupełniania kodu kontekstowego dołączono metody getter i setter. Kiedy wybrałem metodę getter z listy rozwijanej, metoda została poprawnie wstawiona do źródła. Po wstawieniu metody getter STS oznaczył wywołanie metody jako błąd kompilacji, ponieważ uznał, że ta metoda nie istnieje.

Po usunięciu zakresu "podanego" z zależności lombok STS działało poprawnie, a metody pobierania/ustawiania mogły zostać dodane do kodu, kod mógł zostać skompilowany/spakowany i wykonany. Wykonano metody getter/setter.

2

@Karthik R, dzięki za twój wpis. Poniższa pomógł mi rozwiązać problem

1.Go do https://projectlombok.org/ i pobrać i kliknij dwukrotnie słoik i zainstalować w swoim IDE 2.Po że otwarcie pliku ini i sprawdzić, czy ma „javaagent” i „Xbootclasspath” zmienne.W moim przypadku brakowało "Xbootclasspath" i kiedy dodałem, że działało

1

Dodałem -Xbootclasspath/a:lombok.jar jak naga1990 mentioned, jednak nadal nie rozwiązało problemu. Po uruchomieniu STS z -clean zadziałało.

+0

To zadziałało dla mnie. W systemie Linux przejdź do folderu zawierającego plik STS, a na konsoli uruchom './STS -clean'. Domyślam się, że w Windowsie to samo z .exe –

1

Jeśli już próbowałeś innych metod, ale to nadal nie działa, można spróbować to:

Jeśli projekt jest Maven oparte projekt, STS będzie go skonfigurować jako AspectJ Capability które będą sprzeczne z Lombok.

Aby rozwiązać ten problem, usuń funkcję Aspects przez Kliknij projekt prawym przyciskiem myszy -> Narzędzia AspectJ -> Usuń AspectJ Capability. Mam nadzieję, że to zadziała.

enter image description here