webentwicklung-frage-antwort-db.com.de

Projekt kann nicht kompiliert werden, wenn ich Lombok unter IntelliJ verwende IDEA

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.

150
expert

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

322
user2021572

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

69
greperror

Bilddarstellung zur Lösung dieses Problems. 

Aktivieren Sie zunächst Anmerkungsprozessoren und versuchen Sie es. Dies kann funktionieren oder nicht.  enter image description here

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: 

 enter image description here

37
CodeShadow

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.

7
Omri Sivan

es gibt ein Plugin für Intellij. siehe hier: https://projectlombok.org/download.html

6
mt.uulu

Wenn Sie beide dieser Schritte wie folgt geprüft haben 

  1. Anmerkungen aktivieren: Dies ist eine Überprüfung in den IntelliJ -Einstellungen. 
  2. Lombok in IntelliJ classPath Importieren (Voreinstellungen -> Plugins)

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.

5
Saurabh Saha

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.

3
mplushnikov

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

3
so-random-dude

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".

2
Bluce Liu

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.

2
JasnaRB

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. 

1
user64141

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>
1
Shreya Mishra

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.

0
John Chapman

Wenn das Attribut foo boolean ist, stellt es isFoo() statt getFoo() von Lombok @Data bereit.

0
Yao Li

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)

0
wst

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:

  1. Datei -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Anmerkungsprozessoren -> Anmerkungsverarbeitung aktivieren;

 enter image description here

Denken Sie daran, Übernehmen die Änderung.

  1. Installieren Sie das Plugin lombok im selben Einstellungsdialogfeld.

 enter image description here

  1. Für den Moment scheint es gut genug zu sein. Sie müssen IntelliJ neu starten und dann Ihr Projekt neu erstellen.

Schöne Grüße :)

0
Hearen

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.

0
cybersoft

Stellen Sie sicher, dass es korrekt hinzugefügt wurde

dependencies {
 ...
    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'

}
0

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
0

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

0
realPK

In meinem Fall hatte ich alle unten genannten Dinge und es funktionierte immer noch nicht. 

  1. Ich hatte das Lombok-Plugin richtig installiert
  2. Anmerkungsprozessoren, ebenfalls geprüft.
  3. Mein Java-Compiler wurde auf JAVAC gesetzt 

Um meine Probleme zu beheben, musste ich 

  1. Aktualisieren Sie Lombok auf die neueste Version (v0.15) vom 7. Oktober 2017.
  2. Starten Sie IntelliJ neu.
  3. Projekt neu erstellen 

Nachfolgend finden Sie Screenshots zum Aktualisieren und Wiederherstellen eines Projekts.

So aktualisieren Sie Lombok

Wie man ein Projekt wieder aufbaut

FWIW - Wenn Sie Compiler-Anmerkungen wie oben beschrieben einstellen, stellen Sie sicher, dass Sie auch nach Profilen suchen, die Sie verwenden, z.

0
l8Again

Dieses Problem ist nach der Aktualisierung von IDEA auf 2018.3 aufgetreten. Ich musste das vorhandene Plugin aktualisieren

0
Srikanth Reddy

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

0
krishna Murari

Ich hatte das gleiche Problem, also werde ich dies hier zur zukünftigen Bezugnahme auf meine Vergesslichkeit lassen. 

Bei Alt+Entering 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;

0