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?
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
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?
Dans l'Ide de la version 2016, 2017, activer les Préférences -> Compiler -> Annotation Processeurs ne fonctionne pas pour moi!
Dans l'IDÉE de 13 ce ne semble plus être un problème, vous avez juste à avoir la Lombok plugin installé.
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
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.
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.