wake-up-neo.net

Lombok-Annotationen werden unter Intellij-Idee nicht kompiliert

  1. Ich habe das Plugin für Intellij Idea installiert (lombok-plugin-0.8.6-13).
  2. Lombok.jar in classpath hinzugefügt
  3. Ich kann Getter und Setter im Fenster der Struktur finden. Und Intellij zeigt keinen Fehler.
  4. Einstellung - Lombok-Plugin - Verifizierte Intellij-Konfiguration für Lombok. Es zeigt, dass "die Konfiguration von IntelliJ in Ordnung zu sein scheint".

Es scheint alles in Ordnung zu sein. Aber wenn ich einen Test kompiliere, kommen Fehler: Kann die Methoden getXXX und setXXX nicht finden.

Ich habe die .class-Datei mit IntelliJ geöffnet und festgestellt, dass es keine setXXX- und getXXX-Methoden gibt.

Kann mir jemand sagen warum?

  • plugin: lombok-plugin-0.8.6-13
  • lombok.jar: 1.14.0
  • idee: 13.0.2 für Linux
  • jdk: 1.7.0_21
163
yurnom

Um das Problem zu lösen, gehen Sie wie folgt vor:

  • Einstellungen (Ctrl + Alt + S)
    • Build, Ausführung, Bereitstellung
      • Compiler
        • Anmerkungsprozessoren
          • Aktivieren Sie die Anmerkungsverarbeitung

Stellen Sie sicher, dass Sie das Lombok-Plugin für IntelliJ installiert haben!

  • Einstellungen -> Plugins
  • Suche nach "Lombok Plugin"
  • Klicken Sie auf Repositorys durchsuchen ...
  • Wähle Lombok Plugin
  • Installieren
  • Starten Sie IntelliJ neu
311
mike

Wenn Sie den Eclipse-Compiler mit lombok verwenden, hat dieses Setup für mich endlich funktioniert:

  • IDEE 14.1
  • Lombok-Plugin
  • .../ Compiler / Java Compiler > Compiler verwenden: - Eclipse
  • .../ Compiler / Anmerkungsprozessoren > Anmerkungsverarbeitung aktivieren: - markiert (Standardkonfiguration)
  • .../ Compiler > Zusätzlicher Erstellungsprozess VM Optionen: - javaagent: lombok.jar

Der wichtigste Teil ist der letzte, meiner sieht folgendermaßen aus: enter image description here

Das Plugin wird für den IntelliJ-Editor benötigt, um Getter und Setter zu erkennen, der Eclipse-Compiler benötigt Javaagent, um mit Lombok zu kompilieren.

43
Juraj Misur

Wenn Sie Intellij auf einem Mac verwenden, hat dieses Setup bei mir endlich funktioniert.

Installationen: Intellij

  1. Gehen Sie zu Einstellungen und suchen Sie nach Plugins.
  2. Tippe "Lombok" in das Suchfeld des Plugins. Lombok ist ein nicht gebündeltes Plugin, es wird also zunächst nicht angezeigt.
  3. Klicken Sie auf "Durchsuchen", um nach nicht gebündelten Plugins zu suchen
  4. Das "Lombok Plugin" sollte angezeigt werden. Wählen Sie es aus.
  5. Klicken Sie auf die grüne Schaltfläche "Installieren".
  6. Klicken Sie auf die Schaltfläche "Intellij IDEA neu starten".

Einstellungen:

  1. Anmerkungsprozessor aktivieren

    • Gehen Sie zu Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Einstellungen -> Compiler -> Anmerkungsprozessoren
    • Datei -> Andere Einstellungen -> Standardeinstellungen -> Compiler -> Anmerkungsprozessoren
  2. Überprüfen Sie, ob das Lombok-Plugin aktiviert ist

    • IntelliJ IDEA-> Einstellungen -> Andere Einstellungen -> Lombok-Plugin -> Lombok aktivieren
  3. Fügen Sie Lombok jar in Globale Bibliotheken und Projektabhängigkeiten hinzu.

    • Datei -> Projektstruktur -> Globale Bibliotheken (Add lombok.jar)
  4. Datei -> Projektstruktur -> Projekteinstellungen -> Module -> Registerkarte Abhängigkeiten = Lombok prüfen

  5. Starten Sie Intellij neu

12

Für mich sind sowohl das Lombok-Plugin als auch die Anmerkungsverarbeitung erforderlich, sonst nichts. Es ist nicht erforderlich, die Optionen Eclipse und - javaagent: lombok.jar zu verwenden.

  • Idee 14.1.3, Build 141.1010
  • Lombok-Plugin [Einstellungen-> Plugins-> Repository durchsuchen-> Suche nach 'lombok' -> Idee installieren und neu starten.
  • Voreinstellung -> Suche 'Annotation' -> Annotation-Prozessor eingeben -> Annotation-Verarbeitung aktivieren.
11
weiheng

IDEA 2016.1:

  • Installiere lombok plugin
  • Einstellungen -> Compiler -> Anmerkungsprozessoren -> Anmerkungsverarbeitung aktivieren: aktiviert (Standardkonfiguration)
  • Einstellungen -> Compiler -> Anmerkungsprozessoren -> Anmerkungsprozessoren fügen "lombok.launch.AnnotationProcessorHider $ AnnotationProcessor" hinzu
  • Wenn Sie maven verwenden, fügen Sie der Konfiguration des maven-compiler-plugins -> annotationProcessors -> annotationProcessor Folgendes hinzu: lombok.launch.AnnotationProcessorHider $ AnnotationProcessor

    <plugin>
      <groupId>org.Apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>${maven.plugin.compiler.version}</version>
      <configuration>
        <compilerVersion>${Java.version}</compilerVersion>
        <source>${Java.version}</source>
        <target>${Java.version}</target>
        <annotationProcessors>
          <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
        </annotationProcessors>
      </configuration>
    </plugin>
    
7
Jan Kubovy

Stellen Sie sicher, dass diese beiden Anforderungen erfüllt sind:

  1. Anmerkungsverarbeitung aktivieren,

    Voreinstellungen> Erstellen, Ausführen, Bereitstellen> Compiler> Anmerkungsprozessoren> Anmerkungsverarbeitung aktivieren

  2. Das Lombok-Plugin ist für Ihr Projekt installiert und aktiviert.

7
Nikhil Katre

Nachdem ich viel zu viel Zeit mit der Fehlerbehebung verbracht hatte, fand ich eine einfache Problemumgehung, die sicherstellt, dass IntelliJ Lombok-Anmerkungen während der Erstellung korrekt verarbeitet.

Das Gradle-Lombok-Plugin ist für diese Problemumgehung nicht erforderlich. Ihre build.gradle benötigt nur Folgendes:

dependencies {
    compileOnly("org.projectlombok:lombok:1.16.18")
}

Die Problemumgehung besteht darin, die folgende IntelliJ-Einstellung zu aktivieren:

  1. Öffnen Sie die IntelliJ-Einstellungen.
  2. Navigiere zu Build, Execute, Deployment > Build Tools > Gradle > Runner
  3. Aktivieren Sie das Kontrollkästchen mit der Bezeichnung Delegate IDE build/run actions to gradle


Vorteile dieser Problemumgehung im Vergleich zu anderen Lösungen auf dieser Seite:

  • Keine Anmerkungsbearbeitung notwendig!
  • Kann den Java -Compiler Ihrer Wahl verwenden (kein Eclipse-Compiler erforderlich)
  • Kein Buggy-Gradle-Lombok-Plugin (obwohl dies vielleicht jemand anderes lösen kann)
  • Nein VM Optionen erforderlich
  • Keine fest codierten Wege zum Lombokglas

Ein Nachteil ist, dass IntelliJ keinen eigenen Testläufer mehr verwendet. Stattdessen werden Tests immer über Gradle ausgeführt.

7
SonnevilleJ

Keine der erweiterten Antworten auf diese Frage hat das Problem für mich gelöst.

Ich konnte das Problem lösen, indem ich lombok eine Abhängigkeit in die Datei pom.xml hinzufügte, d.h.

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.16.12</version>
</dependency>

Ich verwende IntelliJ 2016.3.14 mit maven-3.3.9

Hoffe, meine Antwort wird für Sie hilfreich sein

6
Sahli Ayoub

Auf Itellij 15 CE muss nur das Lombok Plugin installiert werden (keine zusätzliche Konfiguration erforderlich).

3
kecso

Ich habe dieses Verfahren befolgt, um einen ähnlichen/gleichen Fehler zu beheben.

mvn idee: sauber

mVN Idee: Idee

Danach konnte ich sowohl von der IDE intellij als auch von der Kommandozeile aus bauen.

2
ngonidzashe

Ich bin nicht in der Lage, dies mit dem Javac-Compiler zum Laufen zu bringen, und ich erhalte den gleichen Fehler.

Fehler: (9, 14) Java: Paket lombok existiert nicht

Ich habe Anmerkungsprozessor aktiviert und auch versucht, das Projekt neu zu erstellen, Cache ungültig zu machen/neu zu starten. Hilft nicht.

Ich habe es jedoch teilweise mit Eclipse-Compiler arbeiten. Ich sage teilweise, weil, obwohl der Build erfolgreich bestanden wurde, der Editor sich immer noch über "Symbol kann nicht aufgelöst werden" beschwert.

Idea - 15.04 Community Edition Lombok - 1.16.6 Lombok Plugin ( https://github.com/mplushnikov/lombok-intellij-plugin ) - 0.9.8 JDK - 1.8.0_51

Update: Ok, ich habe es endlich geschafft. Meins war ein Gradle-Projekt, und Lombok wurde als benutzerdefinierte "bereitgestellte" Konfiguration konfiguriert. Hat gut funktioniert, nachdem dies in build.gradle hinzugefügt wurde

idea {
 module {
     scopes.PROVIDED.plus += [configurations.provided]
    }
}

Also 3 Schritte

  1. Installieren Sie das Lombok-Plugin über Datei-> Einstellungen-> Plugins
  2. Annotation Processor aktivieren (Javac Compiler funktioniert auch)
  3. Stellen Sie sicher, dass Sie build.gradle oder pom.xml aktualisiert haben, wenn Sie lombok als benutzerdefinierte Konfiguration hinzufügen.
1
robbin