2013-02-14 6 views
28

Ich habe ein Maven-Projekt, das ohne Probleme von der Befehlszeile erstellt. Allerdings, wenn ich es mit IntelliJ bauen, erhalte ich die Fehlermeldung:Gebäude mit Lomboks @ Slf4j und Intellij: Kann nicht finden Symbol log

java: FileName.java:89: cannot find symbol 
symbol : variable log 

Es gibt kein Protokoll ist in der Java-Datei definiert oder importiert werden, aber es gibt eine

@Slf4j 
final public class FileName { 

Aussage vor dem Klassenkörper, sollte die Protokollklasse definieren.

In den Projektstruktur-Fenstern Klassen für:

Maven: org.slf4j:jcl-over-slf4j:1.6.1 
Maven: org.slf4j:slf4j-api:1.6.6 
Maven: org.slf4j:slf4j-log4j12:1.6.6 
Maven: org.slf4j:slf4j-simple:1.6.6 

werden unter Bibliotheken aufgelistet und als einge heruntergeladen und verfügbar angezeigt.

Irgendeine Idee, warum dies mit Maven über die Befehlszeile, aber nicht über IntelliJ und wie das Problem zu beheben wäre?

Antwort

10

Vermutlich ist das die Lombok @Slf4j Annotation, die Sie verwenden. Sie müssen das Lombok-Plugin in IntelliJ installieren, wenn IntelliJ Lombok-Anmerkungen erkennen soll. Was erwartest du sonst, wenn du versuchst, ein Feld zu benutzen, das nicht existiert?

+0

ich die Lombok-Plugin installiert haben. Hinsichtlich der Konfigurationsmöglichkeiten scheint es nicht viel zu geben. Vielleicht ist es ein Fehler im Plugin? – user1991839

+0

Ich habe es erfolgreich mit IDEA 11 und 12 verwendet. Gelegentlich scheint etwas über Lombok zu "vergessen", und ich bekomme eine Reihe roter Linien im Quellcode, aber es baut sich immer noch für mich auf. Es kommt und geht, aber das Plugin ist definitiv nicht fehlerfrei. –

+0

Wissen Sie, ob es einen Workaround gibt, um dies zu umgehen? Wie wäre es möglich, IntelliJ von den Lombok-Bibliotheken zu informieren, ohne das Plugin zu durchsuchen? Ich versuche, IntelliJ für Debugging-Tests zu verwenden, und dies macht es schwierig für mich, es zu verwenden – user1991839

48

Neben Lombok Plugin mit installiert (v0.5 für IntelliJ 12), auch sicherstellen, dass "Verarbeitung aktiviert Anmerkung" Checkbox unter aktiviert ist: Einstellungen -> Compiler -> Anmerkung Prozessoren

+6

Dieser bekommt mich jedes Mal. –

+0

Ich habe keine Annotationsverarbeitung aktiviert und funktioniert: | Ich habe Lombok Plugin installiert. –

+0

Ich habe das Plugin installiert und es hat funktioniert, ohne diese Einstellung zu ändern. Ich entschied mich jedoch, es für ein gutes Maß zu ändern. – sheldonkreger

3

In IDEA Dies scheint kein Problem mehr zu sein, Sie müssen nur das Lombok-Plugin installiert haben.

2

Ich könnte ein totes Thema werden ungraving aber eine einfache Lösung ist in Ihren Abhängigkeiten (Maven pom für exemple) zu überprüfen, ob Sie mit logback-Core und logback-classic.

Slf4j ist nur die Schnittstelle, Sie brauchen die konkrete Implementierung dahinter.

Ich habe zweimal mit IDEA bringt ihn durcheinander, jetzt bin ich gut zu gehen betrogen worden: D

mit einer älteren Version von Lombok
1

ich sah dieses Problem, wenn sie unter JDK8 kompilieren. Durch das Zurücksetzen des Projekts auf JDK7 wurde das Problem behoben.

+0

Aktualisieren der Lombok Abhängigkeit in der Pom funktioniert auch :) –

7

In Intellij Version 2016, 2017, aktivieren Sie Einstellungen -> Compiler -> Annotation Processors funktioniert nicht für mich!

Die folgende zusätzliche Checkbox hilft: enter image description here

+0

Heute hat dieses Kontrollkästchen mir wieder geholfen! –

+0

Ich habe das Plugin hinzugefügt und Annotation Processors aktiviert, immer noch kein Glück. Können Sie angeben, wie Sie auf das obige Kontrollkästchen zugreifen? –

+0

@PhilipJohn: Geben Sie im Suchfeld "Präferenzen" "Lombok" ein. –