Construire avec @Slf4j et Intellij de Lombok: impossible de trouver le journal des symboles

j'ai un projet maven qui construit sans problème depuis la ligne de commande. Cependant, quand je le construis avec IntelliJ, j'obtiens l'erreur:

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

il n'y a pas de log défini ou importé dans le fichier java, mais il y a un

@Slf4j
final public class FileName {

déclaration devant le corps de classe qui devrait définir la classe log.

dans la fenêtre structure du projet, les classes pour:

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

sont répertoriés sous les bibliothèques et sont indiqués comme ayant été téléchargées et disponible.

une idée de la raison pour laquelle ceci serait construit avec maven à travers la ligne de commande, mais pas par IntelliJ et comment résoudre le problème?

39
demandé sur user1991839 2013-02-14 06:15:07

7 réponses

en plus D'avoir installé le plugin Lombok (v0.5 pour IntelliJ 12), assurez-vous également que la case "Enable annotation processing" est cochée: Préférences - > Compilateur - > Processeurs D'Annotation

73
répondu Alexander Zagniotov 2013-03-04 23:14:21

probablement, c'est le Lombok @Slf4j annotation que vous utilisez. Vous aurez besoin d'installer le plugin Lombok dans IntelliJ si vous voulez que IntelliJ reconnaisse les annotations Lombok. Sinon, qu'attendez-vous, si vous essayez d'utiliser un champ qui n'existe pas?

14
répondu Ryan Stewart 2013-02-14 02:19:25

Dans l'Ide de la version 2016, 2017, activer les Préférences -> Compiler -> Annotation Processeurs ne fonctionne pas pour moi!

La suite de case à cocher supplémentaire permet de: enter image description here

13
répondu Tim Long 2017-04-06 11:17:54

Dans l'IDÉE de 13 ce ne semble plus être un problème, vous avez juste à avoir la Lombok plugin installé.

4
répondu f120146 2014-04-24 15:18:34

Je déverrouille peut-être un sujet mort, mais une solution simple est de vérifier vos dépendances (p. ex., pom de Maven) si vous incluez logback-core et logback-classique.

Slf4j est juste l'interface, vous avez besoin de l'implémentation concrète derrière elle pour fonctionner.

j'ai été trompé deux fois avec idée tout gâcher, maintenant je suis prêt à aller :D

2
répondu Ethenyl 2015-02-12 08:08:37

je voyais ce problème avec une version plus ancienne de Lombok lors de la compilation sous JDK8. Le retour du projet à JDK7 a fait disparaître la question.

1
répondu John Chapman 2015-03-30 23:30:48

je viens d'installer la dernière idée verion 2108.1 et j'ai trouvé ce problème, après avoir installé le plugin lombok et redémarrer L'idée résoudre.

0
répondu mefor sy 2018-07-19 03:33:18