it-swarm.com.de

IntelliJ IDEA Lombok generierter Code kann nicht angezeigt werden

Ich habe ein Gradle-basiertes Projekt, das Lombok verwendet. Ich habe dieses Projekt in IntelliJ IDEA 14.1 importiert (mithilfe der Importmethode Import External Model). Ich kann die JUnit4-Einheitentests problemlos in Gradle ausführen, aber IntelliJ scheint ein Problem zu haben, wenn die von Lombok erzeugten Getter angezeigt werden. Dies hindert mich daran, die Tests in IDEA auszuführen. 

Um sicherzustellen, dass es sich nicht um ein Setup-Problem handelt, habe ich ein Very simple project erstellt und bestätigt, dass das gleiche Problem im einfachen Testprojekt auftritt.

Meine Versionen: Gradle: gradle-2.3-all über Gradle-Wrapper
Intellij IDEA: IU-141.713
Lombok Plugin: 0.9.2

Was fehlt mir hier?

Update By kann nicht sehen Ich meine nicht physisch unsichtbar. Ich meine das:

/home/meeee/workspace/junit-lombok-idea/lib/src/main/Java/com/example/jumbokea/Main.Java
Error:(10, 11) Java: cannot find symbol
  symbol:   method setIntField(int)
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(12, 41) Java: cannot find symbol
  symbol:   method getIntField()
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(14, 33) Java: constructor AnotherClass in class com.example.jumbokea.AnotherClass cannot be applied to given types;
  required: no arguments
  found: float,com.example.jumbokea.SomeClass
  reason: actual and formal argument lists differ in length
Error:(16, 46) Java: cannot find symbol
  symbol:   method getSomeFloat()
  location: variable ac of type com.example.jumbokea.AnotherClass
Error:(17, 43) Java: cannot find symbol
  symbol:   method getSomeClass()
  location: variable ac of type com.example.jumbokea.AnotherClass

Die dekompilierten Klassen zeigen die Getter und Setter, aber ich bekomme diese Fehler, wenn IntelliJ die 'app' oder die Unit-Tests ausführt.

Getters and setters are there, but not there???

37
copolii

Sie müssen den Annotations-Präprozessor aktivieren Siehe Dokumentation hier .

Zusätzlich sollten Sie das Lombok-Plugin installieren, falls noch nicht geschehen

65
mh-dev

Ich habe dieses Problem mit den folgenden Schritten gelöst:

  • Installieren Sie das Lombok-Plugin IDEA
  • Anmerkungsverarbeitung aktivieren siehe Dokumentation
  • Installieren Sie den Latest Maven auf Ihrem System, und konfigurieren Sie IntelliJ für die Verwendung (im Gegensatz zum mitgelieferten). siehe Dokumentation
7

In meinem Fall trat das Problem auf, nachdem IntelliJ über Toolbox aktualisiert wurde.

Das Flag "Anmerkungsverarbeitung aktivieren" wurde deaktiviert (trotz Importieren der Einstellungen aus der vorherigen IntelliJ-Version), sodass ich es einschaltete.

Das erneute Installieren des Lombok-Plugins hat jedoch geholfen!

BEARBEITEN: Scheint, dass es das Problem mit der Kompatibilität des Lombok-Plugins mit IntelliJ 2018.1 war. Für IntelliJ-Benutzer ist ein Upgrade auf 0.17 erforderlich. 

Lombok plugin changelog Auszug:

Das Lombok Support-Plugin wurde auf v0.17 aktualisiert: - Behoben (# 465): Die Plugin-Kompatibilität mit IntelliJ 2018.1 wurde behoben

3
logrusso

Es ist im Build-Ordner zu sehen.

enter image description here

3
JiHong Jang

Versuchen Sie, auf Lombok-Import zu klicken und Alt + Eingabetaste zu drücken. Daraufhin wird eine kurze Liste angezeigt. Wählen Sie Maven-Abhängigkeit hinzufügen. In der rechten unteren Ecke des Bildschirms wird das Symbol angezeigt, das Maven aktivieren soll. Klicken Sie auf Automatisch aktivieren. Bei mir hat es geklappt.

0

Nachdem Sie den Anmerkungsprozessor aktiviert und das Lombok-Plugin installiert haben und noch "Symbolfehler nicht gefunden" für die von Lombok generierte Methode gefunden haben, überprüfen Sie die Gradle-Konfiguration 

Voreinstellungen -> Erstellen, Ausführen, Bereitstellen -> Gradle

wenn Sie die lokale Abstufung verwenden, wechseln Sie zu verwenden Sie den standardmäßigen Abstufung-Wrapper .

Ich habe diese Fehlermeldung erhalten, wenn der Gradle-Wrapper meines Projekts 4.10.2 ist, aber meine lokale Version ist 5.1.1.

0
Lindsey Zhang

Fügen Sie die folgende Abhängigkeit in pom.xml zusammen mit anderen in anderen Antworten genannten Lösungen hinzu.

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.2</version>
    <scope>provided</scope>
</dependency>
0
TrueIndian 31

Im Fall von Lombok können Sie mit IntelliJ nach Verwendungen von Variablen suchen, zu denen auch Getter und Setter gehören. Klicken Sie einfach auf den Variablennamen und option/alt + f7.

Dies funktioniert in Intellij 2016 und Lombok Plugin 0.13.16. Bei älteren Versionen bin ich nicht sicher.

0
wst

Wie in der anderen Antwort erwähnt, installieren Sie bitte das Plugin Lombok und aktivieren Sie den Anmerkungsprozessor. Drücken Sie doppelt SHIFT in der IntelliJ und geben Sie Enable annotation processing in das Suchfeld ein. Markieren Sie anschließend das Kästchen und starten Sie die IDE neu. 

 enter image description here

 enter image description here

0
Arefe