Próbuję użyć Lombok w moim projekcie, który rozwijam przy użyciu IntelliJ IDEA 11.
Zainstalowałem wtyczkę innej firmy do IDEA i wydaje się działać dobrze, ponieważ IDEA widzi wszystkie automatycznie wygenerowane metody / pola.
Mam więc klasę, która używa Slf4j. Tak to opisałem
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestClass
{
public TestClass()
{
log.info("Hello!");
}
}
Ale gdy budować mojego projektu pluje kompilatora: cannot find symbol variable log
.
Czy możesz mi powiedzieć, czego tu brakuje?
Aktualizacja: Okazało się, że proces adnotacji RequestFactory kończy się niepowodzeniem.
input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}
annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]
Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.
cannot find symbol variable log
Wszelkie pomysły na obejścia?
Update2: Być może nie jest to coś, co czytelnicy chcą usłyszeć, ale ostatecznie przestawiłem się na Scalę .
java
intellij-idea
lombok
ekspert
źródło
źródło
Odpowiedzi:
Naprawiłem to w IDEA 12, ustawiając pole wyboru
Enable annotation processing
w:Dla IDEA 2016.2:
Po włączeniu uruchom Build -> Rebuild Project, aby rozpoznawać adnotacje i eliminować błędy.
W przypadku IDEA 2019.2.1, w zależności od konfiguracji projektu, instalacja wtyczki Project Lombok może nie być wystarczająca. Oto inny sposób korzystania z Project Lombok z IntelliJ IDEA:
$HOME/dev/java/project/libs
.).lombok
$HOME/dev/java/project/libs/lombok.jar
lombok
naProject Lombok 1.18.8
.Projekt może teraz importować z
lombok
pakietu i używać adnotacji Project Lombok (np.lombok.Setter
Ilombok.Getter
).źródło
Włączenie przetwarzania adnotacji sprawi, że będzie działać
Ale jeśli korzystasz z komputera Mac , upewnij się, że włączono przetwarzanie adnotacji (zaznacz pole wyboru) z obu dostępnych miejsc .
1.) Intellij Idea -> Preferencje -> Kompilator -> Procesory adnotacji
2.) Plik -> Inne ustawienia -> Ustawienia domyślne -> Kompilator -> Procesory adnotacji
źródło
Obraz przedstawiający rozwiązanie tego problemu.
Najpierw włącz procesory adnotacji i spróbuj. To może, ale nie musi działać.
Po tym możesz zainstalować wtyczkę lombok z Intellij (po instalacji Intellij uruchomi się ponownie, aby włączyć wtyczkę, więc upewnij się, że zapisałeś swoją pracę. (Intellij zapisuje wszystkie zmiany przed ponownym uruchomieniem, aby być bezpiecznym). ) zrzut ekranu poniżej:
źródło
przykład dla Gradle:
źródło
Tylko w celach informacyjnych za pomocą IntelliJ 2018.3 rozwiązałem ten problem (
@Data
wstawiając adnotacjęgetter/setter
), wykonując trzy kroki:Wszystkiego najlepszego :)
źródło
Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [module-core,module-utils] are excluded from annotation processing
Jeśli sprawdziłeś oba te kroki w następujący sposób
i nadal pojawiają się błędy, sprawdź kompilator - jeśli jest to JAVAC lub ECLIPSE .
Możesz sprawdzić kompilator w Preferencjach -> Kompilacja, wykonanie, wdrożenie -> Kompilator -> Kompilator Java.
Zmień kompilator Użyj na Javac (jeśli jest to Eclipse). To działało dla mnie.
źródło
w najnowszej wersji Gradle należy użyć procesora adnotacji:
źródło
Jak wspomniano tutaj , cytat: „Powinieneś aktywować opcję zewnętrznego kompilatora i włączyć procesory adnotacji lub wyłączyć zewnętrzny kompilator i wyłączyć wszystkie kompilatory adnotacji do pracy z lombokiem”. To naprawiło mój problem. Pamiętaj, że dodałem wtyczkę Scala przed otrzymaniem tego błędu, więc podejrzewam, że wtyczka zmieniła niektóre z powyższych ustawień.
źródło
istnieje wtyczka do intellij. patrz tutaj: https://projectlombok.org/download.html
źródło
Czy masz lombok jako zależność od swojego projektu? Plik lombok.jar musi znajdować się w ścieżce klas podczas kompilacji projektu, który korzysta z adnotacji lombok.
źródło
Byłem na
Mac
To jest moja wersja IntelliJ IDEA i Mac - IntelliJ IDEA 2017.1.5 Build # IU-171.4694.70 --- Mac OS X 10.12
Oprócz włączenia przetwarzania adnotacji (zaznacz pole wyboru) w tych 2 miejscach.
.
Musiałem również zainstalować wtyczkę Lombok, aby działała.
źródło
Dla tych z was, którzy nadal mają problemy:
Oprócz powyższych kroków włączania procesorów adnotacji i instalowania wtyczki IntelliJ Lombok musiałem również zbudować -> Odbuduj projekt.
źródło
1 、 zainstaluj wtyczkę Lombok dla IDEA
Intellij Idea -> Preferencje -> Wtyczki -> wpisz lombok -> Szukaj w repozytoriach -> zainstaluj -> uruchom ponownie IDEA
2 、 konfiguracja wtyczki Lombok
Włączenie przetwarzania adnotacji sprawi, że będzie działać
Ale jeśli korzystasz z komputera Mac, upewnij się, że włączono przetwarzanie adnotacji w następujących dwóch miejscach:
Intellij Idea -> Preferencje -> Kompilacja, wykonanie, wdrożenie -> Kompilator -> Procesory adnotacji, zaznacz pole wyboru „Włącz przetwarzanie adnotacji”. Plik -> Inne ustawienia -> Ustawienia domyślne -> Kompilacja, wykonanie, wdrożenie -> Kompilator -> Procesory adnotacji, zaznacz pole wyboru „Włącz przetwarzanie adnotacji”.
źródło
Nie działało dla mnie z żadnym z powyższych rozwiązań. Dodałem
<scope>provided</scope>
do zależności w pom.xml i zadziałało.źródło
Napotkałem ten problem po aktualizacji IDEA do 2018.3. Musiałem zaktualizować wszystkie istniejące wtyczki
źródło
Po wypróbowaniu wszystkich sugestii tutaj znalazłem również inny rodzaj rozwiązania. Wydaje się, że czasami IDEA nie może uzyskać procesorów ze ścieżki klas projektu.
Tak więc na karcie Ustawienia procesorów adnotacji musisz ręcznie określić ścieżkę procesora .
źródło
Miałem podobny problem podczas budowania z JDK8, ustawiłem projekt z powrotem na JDK7 i działało dobrze. Może to być starsza wersja Lombok, która nie będzie się kompilować pod JDK8.
źródło
Miałem ten sam problem, więc zostawiam to tutaj w celu odniesienia w przyszłości do mojej nieświadomości.
Kiedy
Alt+Enter
ing na@Slf4j
adnotacji ja omyłkowo wybrał nieprawidłowy importu. Więc jeśli kod się nie kompiluje, upewnij się, że importujesz:import lombok.extern.slf4j.Slf4j;
źródło
FWIW - Ustawiając adnotacje kompilatora zgodnie z powyższym opisem, upewnij się, że sprawdziłeś również wszystkie używane profile, takie jak „Domyślne procesory adnotacji Maven”.
źródło
Może się zdarzyć, że nawet jeśli masz poprawnie skonfigurowane i jest to widoczne w bibliotekach i na liście zależności Gradle, IntelliJ nadal nie ma go na ścieżce klasy. Lub jest tam, ale skonfigurowany z innym zakresem (np. Test zamiast kompilacji).
Po pierwsze, upewnij się, że masz zainstalowaną wtyczkę i włączone przetwarzanie adnotacji, jak podano w innych odpowiedziach.
Jeśli nadal nie rozpoznajesz adnotacji, umieść na niej kursor, naciśnij ALT + ENTER (lub OPTION + ENTER) i sprawdź, czy masz opcję menu
Add library: Gragle: org.projectlombok:lombok:VERSION to class path
. Jeśli go widzisz, wybierz ten, a może rozwiązać Twój problem.Możesz sprawdzić bibliotekę i jej zakres w: zakładce Ustawienia projektu / Moduły / Zależności (tam wyszukaj lombok)
źródło
Jeśli wypróbowałeś wszystkie przedstawione tutaj rozwiązania i nadal nie możesz skompilować źródeł, spójrz tutaj: Import statyczny klasy konstruktora przerywa generowanie kodu bajtowego w Maven - spójrz na źródła, jeśli ma taki statyczny import. Wpływa to na wtyczkę maven, więc kompilacja zakończy się niepowodzeniem na innych systemach kompilacji poza IntelliJ IDEA.
źródło
W moim przypadku miałem wszystkie wymienione poniżej rzeczy i nadal nie działało.
Aby naprawić swoje problemy, musiałem to zrobić
Zobacz zrzuty ekranu dotyczące aktualizacji i przebudowy projektu poniżej.
Jak zaktualizować Lombok
Jak odbudować projekt
źródło
Możesz to naprawić
cannot find symbol variable log
podczas korzystania z lombok w IntelliJ IDEA 2017.1.3, wykonując następujące czynności:źródło
Zainstaluj poniższą wtyczkę i zrestartuj IDE, aby rozwiązać błędy:
Włącz procesor adnotacji:
źródło
Napotkałem podobny problem. Poniższe działało dla mnie.
pobierz (stąd https://projectlombok.org/download ) i dodaj słoik do struktury projektu.
Kroki: Plik -> Struktura projektu -> Biblioteki globalne
źródło
Jeśli biblioteki lombok są ustawione poprawnie, jak wiele wspomniano powyżej, kliknij adnotację, która się nie skompiluje, Alt-Enter, pojawi się poprawny import i kod się skompiluje. - zajęło mi trochę czasu, aby to rozgryźć. Umieściłem to tutaj na wypadek, gdyby ludzie mogli przegapić proste oczywiste.
źródło
Zrób to dla użytkowników Eclipse na MacOS. To zadziałało dla mnie.
Eclipse.app/Contents/MacOS
katalogu.-javaagent:lombok.jar
na końcu pliku Eclipse.app/Contents/Eclipse/eclipse.ini.Odwoływanie się do tego
źródło
Oprócz wymienionych we wszystkich odpowiedziach muszę dodać poniższy kod w konfiguracji pom.xml, aby mvn clean install działał. Przed dodaniem tego kodu nie mogłem znaleźć symbolu pobierających i ustawiających.
źródło
Dla mnie to, co zadziałało:
źródło
W przypadku IntelliJ IDEA 2020.1.1 włączenie wtyczki Kotlin rozwiązało ten problem.
źródło