Ich versuche, Lombok in meinem Projekt zu verwenden, das ich mit IntelliJ IDEA 11 entwickle.
Ich habe ein Plugin eines Drittanbieters für IDEA installiert und es scheint gut zu funktionieren, da IDEA alle automatisch generierten Methoden / Felder sieht.
Ich habe also eine Klasse, die Slf4j verwendet. Ich habe es so kommentiert
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestClass
{
public TestClass()
{
log.info("Hello!");
}
}
Aber wenn ich meinen Projekt-Compiler baue, spuckt : cannot find symbol variable log
.
Könnten Sie mir bitte sagen, was ich hier vermisse?
Update: Es stellte sich heraus, dass der RequestFactory-Annotationsprozess fehlschlägt.
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
Irgendwelche Ideen zu Problemumgehungen?
Update2: Vielleicht wollen die Leser das nicht hören, aber ich bin zu Scala gewechselt .
java
intellij-idea
lombok
Experte
quelle
quelle
Antworten:
Ich habe es in IDEA 12 behoben, indem ich das Kontrollkästchen
Enable annotation processing
in:Für IDEA 2016.2:
Führen Sie nach dem Aktivieren Build -> Rebuild Project aus , um Anmerkungen zu erkennen und Fehler zu beseitigen.
Für IDEA 2019.2.1 ist die Installation des Project Lombok-Plugins je nach Konfiguration des Projekts möglicherweise nicht ausreichend. Hier ist eine andere Möglichkeit, Project Lombok mit IntelliJ IDEA zu verwenden:
$HOME/dev/java/project/libs
. B. ).lombok
$HOME/dev/java/project/libs/lombok.jar
lombok
inProject Lombok 1.18.8
.Das Projekt kann jetzt aus dem
lombok
Paket importieren und Project Lombok-Anmerkungen (z . B.lombok.Setter
undlombok.Getter
) verwenden.quelle
Wenn Sie die Verarbeitung von Anmerkungen aktivieren, funktioniert dies
Wenn Sie jedoch einen Mac verwenden , stellen Sie sicher, dass Sie die Anmerkungsverarbeitung an beiden verfügbaren Stellen aktivieren (aktivieren Sie das Kontrollkästchen) .
1.) Intellij Idea -> Einstellungen -> Compiler -> Anmerkungsprozessoren
2.) Datei -> Andere Einstellungen -> Standardeinstellungen -> Compiler -> Anmerkungsprozessoren
quelle
Bilddarstellung zur Lösung dieses Problems.
Aktivieren Sie zuerst Anmerkungsprozessoren und versuchen Sie es. Dies kann funktionieren oder nicht.
Danach können Sie das Lombok-Plugin von Intellij aus installieren. (Nach der Installation wird Intellij neu gestartet, um das Plugin zu aktivieren. Speichern Sie also Ihre Arbeit. (Intellij speichert alle Änderungen vor dem Neustart, um auf der sicheren Seite zu sein.) ) Screenshot unten:
quelle
Beispiel für Gradle:
quelle
Nur als Referenz mit IntelliJ 2018.3 habe ich dieses Problem (mithilfe von
@Data
Anmerkungen zum Einfügengetter/setter
) in den folgenden drei Schritten gelöst :Die besten Wünsche :)
quelle
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
Wenn Sie beide Schritte wie folgt überprüft haben
Wenn immer noch Fehler auftreten , überprüfen Sie bitte den Compiler - ob es sich um JAVAC oder ECLIPSE handelt .
Sie können den Compiler unter Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Compiler -> Java-Compiler überprüfen.
Ändern Sie den Use-Compiler in Javac (falls es sich um Eclipse handelt). Das hat bei mir funktioniert.
quelle
In der neuesten Gradle-Version sollten Sie annotationProcessor verwenden:
quelle
Wie hier angegeben , zitieren Sie: "Sie sollten die Option für den externen Compiler aktivieren und Anmerkungsprozessoren aktivieren oder den externen Compiler deaktivieren und alle Anmerkungs-Compiler für die Arbeit mit Lombok deaktivieren." Dies hat mein Problem behoben. Beachten Sie, dass ich das Scala-Plugin hinzugefügt habe, bevor ich diesen Fehler erhalten habe. Ich vermute, dass das Plugin einige der oben genannten Einstellungen geändert hat.
quelle
Es gibt ein Plugin für Intellij. siehe hier: https://projectlombok.org/download.html
quelle
Haben Sie Lombok als Abhängigkeit von Ihrem Projekt? lombok.jar muss sich beim Kompilieren des Projekts im Klassenpfad befinden, das eine der lombok-Annotationen verwendet.
quelle
Ich war auf
Mac
Dies ist meine IntelliJ IDEA- und Mac-Version - IntelliJ IDEA 2017.1.5 Build # IU-171.4694.70 --- Mac OS X 10.12
Zusätzlich zur Aktivierung der Anmerkungsverarbeitung (aktivieren Sie das Kontrollkästchen) an diesen beiden Stellen.
.
Ich musste auch das Lombok-Plugin installieren, damit es funktioniert.
quelle
Für diejenigen unter Ihnen, die immer noch Probleme haben:
Zusätzlich zu den oben genannten Schritten zum Aktivieren von Anmerkungsprozessoren und zum Installieren des IntelliJ Lombok-Plugins musste ich auch Build -> Rebuild Project erstellen.
quelle
1 、 Installieren Sie das Lombok-Plugin für IDEA
Intellij Idea -> Einstellungen -> Plugins -> Lombok eingeben -> In Repositorys suchen -> Installieren -> IDEA neu starten
2 、 config lombok plugin
Wenn Sie die Verarbeitung von Anmerkungen aktivieren, funktioniert dies
Wenn Sie jedoch einen Mac verwenden, stellen Sie sicher, dass Sie die Anmerkungsverarbeitung an den folgenden zwei Stellen aktivieren:
Intellij Idea -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Compiler -> Anmerkungsprozessoren, aktivieren Sie das Kontrollkästchen "Anmerkungsverarbeitung aktivieren". Datei -> Andere Einstellungen -> Standardeinstellungen -> Erstellen, Ausführen, Bereitstellen -> Compiler -> Anmerkungsprozessoren, aktivieren Sie das Kontrollkästchen "Anmerkungsverarbeitung aktivieren".
quelle
Bei keiner der oben genannten Lösungen hat es bei mir nicht funktioniert. Ich
<scope>provided</scope>
habe die Abhängigkeit in pom.xml hinzugefügt und es hat funktioniert.quelle
Ich habe dieses Problem nach der Aktualisierung der IDEA auf 2018.3 festgestellt. Ich musste das gesamte vorhandene Plugin aktualisieren
quelle
Nachdem ich alle Vorschläge hier ausprobiert habe, habe ich auch eine andere Art von Lösung gefunden. Es scheint, dass IDEA manchmal keine Prozessoren aus dem Projektklassenpfad erhalten kann.
Also, auf der Annotation Processors Registerkarte Einstellungen, müssen Sie manuell festlegen Prozessorpfad .
quelle
Ich hatte ein ähnliches Problem beim Erstellen mit JDK8, setzte das Projekt wieder auf JDK7 und es funktionierte einwandfrei. Könnte eine ältere Version von Lombok sein, die unter JDK8 nicht kompiliert werden kann.
quelle
Ich hatte das gleiche Problem, deshalb werde ich dies hier belassen, um später auf meine Unwissenheit zurückgreifen zu können.
Wenn
Alt+Enter
auf ing@Slf4j
Anmerkung versehentlich ich ungültig Import gewählt haben. Wenn der Code nicht kompiliert werden kann, stellen Sie sicher, dass Sie Folgendes importieren:import lombok.extern.slf4j.Slf4j;
quelle
FWIW - Stellen Sie beim Festlegen von Compiler-Annotationen wie oben beschrieben sicher, dass Sie auch nach Profilen suchen, die Sie verwenden, z. B. "Maven-Standard-Annotationsprozessoren".
quelle
Es kann vorkommen, dass IntelliJ es selbst dann nicht im Klassenpfad hat, wenn Sie es richtig konfiguriert haben und es in den Bibliotheken und in der Gradle-Abhängigkeitsliste sichtbar ist. Oder es ist da, aber mit einem anderen Bereich konfiguriert (z. B. Test statt Kompilieren.)
Stellen Sie zunächst sicher, dass das Plugin installiert und die Anmerkungsverarbeitung aktiviert ist, wie in anderen Antworten angegeben.
Wenn Sie immer noch keine Anmerkung erkannt haben, setzen Sie den Cursor darauf, drücken Sie ALT + ENTER (oder OPTION + ENTER) und prüfen Sie, ob Sie eine Menüoption haben
Add library: Gragle: org.projectlombok:lombok:VERSION to class path
. Wenn Sie es sehen können, wählen Sie dieses und es kann Ihr Problem lösen.Sie können die Bibliothek und ihren Umfang unter folgender Adresse überprüfen: Registerkarte Projekteinstellungen / Module / Abhängigkeiten (dort nach Lombok suchen)
quelle
Wenn Sie alle hier vorgestellten Lösungen ausprobiert haben und dennoch keine Quellen kompilieren können, sehen Sie auch hier nach: Der statische Import der Builder-Klasse unterbricht die Bytecode-Generierung in Maven - sehen Sie sich Ihre Quellen an, wenn solche statischen Importe vorhanden sind. Dies wirkt sich auf das Maven-Plugin aus, sodass die Kompilierung auf anderen Build-Systemen außerhalb von IntelliJ IDEA fehlschlägt.
quelle
In meinem Fall hatte ich alle unten genannten Dinge an Ort und Stelle und es funktionierte immer noch nicht.
Um meine Probleme zu beheben, musste ich
Unten finden Sie Screenshots zum Aktualisieren und Wiederherstellen des Projekts.
So aktualisieren Sie lombok
So erstellen Sie ein Projekt neu
quelle
Sie können
cannot find symbol variable log
Folgendes beheben, wenn Sie lombok in IntelliJ IDEA 2017.1.3 verwenden:quelle
Installieren Sie das folgende Plugin und starten Sie die IDE neu, um die Fehler zu beheben:
Anmerkungsprozessor aktivieren:
quelle
Ich hatte ein ähnliches Problem. Folgendes hat bei mir funktioniert.
Laden Sie es herunter (von hier https://projectlombok.org/download ) und fügen Sie das Glas in Ihre Projektstruktur ein.
Schritte: Datei -> Projektstruktur -> Globale Bibliotheken
quelle
Wenn die Lombok-Bibliotheken korrekt eingestellt sind, wie oben erwähnt, klicken Sie auf die Anmerkung, die nicht kompiliert werden kann, Alt-Enter. Ein korrekter Import wird angezeigt und der Code wird kompiliert. - Ich habe eine Weile gebraucht, um es herauszufinden. Ich sage es hier nur für den Fall, dass die Leute das einfache Offensichtliche übersehen.
quelle
Führen Sie dies für Eclipse-Benutzer unter MacOS aus. Es hat bei mir funktioniert.
Eclipse.app/Contents/MacOS
Verzeichnis.-javaagent:lombok.jar
am Ende der Datei Eclipse.app/Contents/Eclipse/eclipse.ini hinzu.Darauf verweisen
quelle
Abgesehen von allen Antworten muss ich den folgenden Code in der pom.xml-Konfiguration hinzufügen, damit die mvn-Neuinstallation funktioniert. Vor dem Hinzufügen dieses Codes konnte ich kein Symbol für Getter und Setter finden.
quelle
Für mich hat was funktioniert:
quelle
Für IntelliJ IDEA 2020.1.1 wurde dieses Problem durch Aktivieren des Kotlin-Plugins behoben.
quelle