Ich versuche, Lombok in meinem Projekt zu verwenden, das ich mit IntelliJ IDEA 11 entwickle.
Ich habe 3rd-Party-Plugin 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 spucke: cannot find symbol variable log
.
Könnten Sie mir bitte sagen, was mir hier fehlt?
Update: Es stellte sich heraus, dass der RequestFactory-Anmerkungsprozess 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
Ideen zur Problemumgehung?
Update2: Vielleicht möchten die Leser es nicht hören, aber ich bin schließlich zu Scala gewechselt.
Ich habe es in IDEA 12 durch Setzen des Kontrollkästchens Enable annotation processing
in behoben:
Einstellungen -> Compiler -> Anmerkungsprozessoren
Für IDEA 2016.2:
Voreinstellungen ...> Erstellen, Ausführen, Bereitstellen> Compiler> Anmerkungsprozessoren
Durch die Aktivierung der Anmerkungsverarbeitung wird es funktionieren
Wenn Sie sich jedoch auf einem Mac befinden, stellen Sie sicher, dass Sie die Anmerkungsverarbeitung aktivieren (aktivieren Sie das Kontrollkästchen) vonden beiden Orten, die verfügbar sind.
1.) Intellij-Idee -> Voreinstellungen -> Compiler -> Anmerkungsprozessoren
2.) Datei -> Andere Einstellungen -> Standardeinstellungen -> Compiler -> Anmerkungsprozessoren
Bilddarstellung zur Lösung dieses Problems.
Aktivieren Sie zunächst Anmerkungsprozessoren und versuchen Sie es. Dies kann funktionieren oder nicht.
Sie können das Lombok-Plugin von intellij installieren. (Nach der Installation wird Intellij neu gestartet, um das Plugin zu aktivieren. Speichern Sie daher Ihre Arbeit. (Intellij speichert alle Änderungen vor dem Neustart, um auf der sicheren Seite zu sein.) ) Screenshot unten:
hier , Zitat: "Sie sollten die externe Compiler-Option aktivieren und Annotation-Prozessoren aktivieren oder den externen Compiler deaktivieren und alle Annotation-Compiler deaktivieren, um mit lombok zu arbeiten". Dies hat mein Problem behoben. Beachten Sie, dass ich vor dem Erhalt dieses Fehlers das Scala-Plugin hinzugefügt habe. Daher vermute ich, dass das Plugin einige der obigen Einstellungen geändert hat.
es gibt ein Plugin für Intellij. siehe hier: https://projectlombok.org/download.html
Wenn Sie beide dieser Schritte wie folgt geprüft haben
und immer noch Fehler dann Bitte überprüfen Sie den Compiler - wenn es JAVAC oder Eclipse ist.
Sie können den Compiler unter Voreinstellungen -> Erstellen, Ausführen, Bereitstellen -> Compiler -> Java-Compiler überprüfen.
Ändern Sie den Use-Compiler in Javac (falls dies Eclipse ist). Das hat bei mir funktioniert.
Haben Sie Lombok als Abhängigkeit von Ihrem Projekt? lombok.jar muss sich während des Kompilierens des Projekts auf dem Klassenpfad befinden, wobei Lombok-Anmerkungen verwendet werden.
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.
1.) Intellij IDEA -> Preferences -> Compiler -> Annotation-Prozessoren
.
2.) Datei -> Andere Einstellungen -> Standardeinstellungen -> Compiler -> Anmerkungsprozessoren
Ich musste auch das Lombok-Plugin installieren, damit es funktioniert.
3.) Intellij IDEA -> Einstellungen -> Plugins -> Repositorys durchsuchen -> Nach "Lombok" suchen -> Plugin installieren -> Übernehmen und starten Sie IDEA neu
1 l Lombok-Plugin für IDEA installieren
Intellij Idee -> Einstellungen -> Plugins -> lombok eingeben -> In Repositories suchen -> installieren -> IDEA neu starten
2 、 config lombok plugin
Durch die Aktivierung der Anmerkungsverarbeitung wird es funktionieren
Wenn Sie sich jedoch auf einem Mac befinden, stellen Sie sicher, dass Sie die Anmerkungsverarbeitung an den beiden folgenden Stellen aktivieren:
Intellij-Idee -> Voreinstellungen -> Erstellen, Ausführen, Bereitstellen -> Compiler -> Anmerkungsprozessoren, aktivieren Sie das Kontrollkästchen "Anmerkungsverarbeitung aktivieren" .. _. > Compiler -> Anmerkungsprozessoren, aktivieren Sie das Kontrollkästchen "Anmerkungsverarbeitung aktivieren".
Für diejenigen von euch, die immer noch Probleme haben:
Zusätzlich zu den obigen Schritten zum Aktivieren von Anmerkungsprozessoren und zum Installieren des IntelliJ Lombok-Plugins musste ich auch Build -> Project neu erstellen.
Damit dies funktioniert, installieren Sie einfach das "Lombok Plugin" für IntelliJ. Sie müssen nichts mit der Aktivierung von "Anmerkungsprozessoren" tun, wie andere Kommentatoren vorgeschlagen haben. (Ich habe dies mit der neuesten Version von IntelliJ IDEA, derzeit 2017.1.2, getestet). Um das Plugin zu installieren, gehen Sie zu Einstellungen, dann zu Plugins, klicken Sie auf die Schaltfläche "Repositorys durchsuchen", suchen Sie nach "Lombok" und installieren Sie das Lombok Plugin. Sie werden aufgefordert, IntelliJ neu zu starten. Danach sollten Sie in der Lage sein, von IntelliJ aus zu kompilieren, und Sie erhalten keine Fehlerprüfungen mehr.
Mit keiner der oben genannten Lösungen hat es für mich funktioniert. Ich habe <scope>provided</scope>
zu der Abhängigkeit in pom.xml hinzugefügt und es hat funktioniert.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
Beim Bauen mit JDK8 hatte ich ein ähnliches Problem, stellte das Projekt auf JDK7 zurück und es funktionierte gut. Könnte eine ältere Version von Lombok sein, die unter JDK8 nicht kompiliert werden kann.
Wenn das Attribut foo
boolean ist, stellt es isFoo()
statt getFoo()
von Lombok @Data bereit.
Es kann vorkommen, dass IntelliJ selbst dann nicht im Klassenpfad vorhanden ist, wenn Sie es ordnungsgemäß konfiguriert haben und in den Bibliotheken und in der Gradle-Abhängigkeitsliste sichtbar sind. Oder es ist da, aber mit unterschiedlichem Umfang konfiguriert (zB: test statt kompilieren.)
Stellen Sie zunächst sicher, dass das Plugin installiert und die Anmerkungsverarbeitung aktiviert ist, wie in den anderen Antworten angegeben.
Wenn Sie die Annotation immer noch nicht erkannt haben, platzieren Sie den Cursor darauf, drücken Sie ALT + EINGABETASTE (oder OPTION + EINGABETASTE) und prüfen Sie, ob Sie eine Menüoption Add library: Gragle: org.projectlombok:lombok:VERSION to class path
haben. Wenn Sie es sehen können, wählen Sie dieses und es kann Ihr Problem lösen.
Sie können die Bibliothek und ihren Gültigkeitsbereich überprüfen: Projekteinstellungen/Module/Abhängigkeiten (dort nach Lombok suchen)
Nur als Referenz mit IntelliJ 2018.3 löste ich dieses Problem (unter Verwendung der Annotation @Data
zum Einfügen von getter/setter
). Dabei wurden die drei Schritte ausgeführt:
Denken Sie daran, Übernehmen die Änderung.
Schöne Grüße :)
Wenn Sie alle hier vorgestellten Lösungen ausprobiert haben und trotzdem keine Quellen kompilieren können, sehen Sie hier: Statischer Import der Bytecode-Generierung von Builder-Klassenunterbrechungen in Maven - Schauen Sie in Ihren Quellen nach, ob solche statischen Importe vorhanden sind. Dies betrifft Maven-Plug-Ins. Die Kompilierung schlägt auf anderen Build-Systemen außerhalb von IntelliJ IDEA fehl.
Stellen Sie sicher, dass es korrekt hinzugefügt wurde
dependencies {
...
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
}
Installieren Sie das folgende Plugin und starten Sie IDE erneut, um die Fehler zu beheben:
File -> Settings -> Plugins-> Browse Repositories -> Lombok Plugin
Anmerkungsprozessor aktivieren:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors
Sie können cannot find symbol variable log
korrigieren, wenn Sie Lombok in IntelliJ IDEA 2017.1.3 verwenden, indem Sie Folgendes tun:
IntelliJ-Voreinstellungen> Erstellen, Ausführen, Bereitstellen> Annotation Prozessoren> [Prüfen] Anmerkungsverarbeitung aktivieren> Anwenden
In meinem Fall hatte ich alle unten genannten Dinge und es funktionierte immer noch nicht.
Um meine Probleme zu beheben, musste ich
Nachfolgend finden Sie Screenshots zum Aktualisieren und Wiederherstellen eines Projekts.
FWIW - Wenn Sie Compiler-Anmerkungen wie oben beschrieben einstellen, stellen Sie sicher, dass Sie auch nach Profilen suchen, die Sie verwenden, z.
Dieses Problem ist nach der Aktualisierung von IDEA auf 2018.3 aufgetreten. Ich musste das vorhandene Plugin aktualisieren
Faced similar problem.
Below fixed worked for me.
download (von hier [ https://projectlombok.org/download.com[1] ) und fügen Sie das Jar hinzu in Ihrer Projektstruktur.
Schritte: Datei-> Projektstruktur-> Globale Bibliotheken
Ich hatte das gleiche Problem, also werde ich dies hier zur zukünftigen Bezugnahme auf meine Vergesslichkeit lassen.
Bei Alt+Enter
ing auf @Slf4j
-Anmerkung habe ich mich irrtümlicherweise für ungültigen Import entschieden. Wenn der Code nicht kompiliert wird, stellen Sie sicher, dass Sie importieren:
import lombok.extern.slf4j.Slf4j;