J'ai un projet maven qui se construit sans problème à partir de la ligne de commande. Cependant, lorsque 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 journal défini ou importé dans le fichier java, mais il y a un
@Slf4j
final public class FileName {
instruction avant le corps de la classe qui doit définir la classe du journal.
Dans la fenêtre de 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 bibliothèques et sont indiqués comme ayant été téléchargés et disponibles.
Une idée de la raison pour laquelle cela serait construit avec maven via la ligne de commande, mais pas via IntelliJ et comment résoudre le problème?
intellij-idea
slf4j
lombok
user1991839
la source
la source
Réponses:
En plus d' avoir installé le plugin Lombok , assurez-vous également que la
Enable annotation processing
case " " est cochée sous:Remarque: à partir d'IntelliJ 2017, la
Enable Annotation Processing
case à cocher " " a été déplacée vers:la source
C'est probablement l' annotation Lombok @ Slf4j que vous utilisez. Vous devrez installer le plugin Lombok dans IntelliJ si vous voulez qu'IntelliJ reconnaisse les annotations Lombok. Sinon, à quoi vous attendez-vous si vous essayez d'utiliser un champ qui n'existe pas?
la source
Dans Intellij version 2016, 2017, activez Préférences -> Compilateur -> Les processeurs d'annotations ne fonctionnent pas pour moi!
La case à cocher supplémentaire suivante aide:
la source
2019:
Obtenez un plugin et vous êtes trié ...
Fichier> Paramètres> Plugins
la source
Je suis peut-être en train de dégrossir un sujet mort, mais une solution simple consiste à vérifier vos dépendances (pom de Maven par exemple) si vous incluez logback-core et logback-classic .
Slf4j n'est que l'interface, vous avez besoin de l'implémentation concrète derrière cela pour fonctionner.
J'ai été trompé deux fois avec IDEA qui a tout gâché, maintenant je suis prêt à partir: D
la source
A travaillé pour moi !!! Il échouait sur CircleCI et sur Jenkins également.
Si vous êtes un utilisateur Gradle, essayez d'ajouter ce qui suit dans vos dépendances:
la source
Dans IDEA 13, cela ne semble plus être un problème, il vous suffit d'installer le plugin Lombok.
la source
Je viens d'installer la dernière version d'idée 2108.1 et j'ai trouvé ce problème, après avoir installé le plugin lombok et redémarré Idea, résolvez-le.
la source
Si vous utilisez maven, essayez d'ajouter le chemin Lombok à la
maven-compiler-plugin
liste du processeur d'annotations comme indiqué ci-dessous.Changez la version selon votre version de Lombok. Autre que cela, assurez-vous que vous avez fait ce qui suit
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
. Pour moi à la fois,Obtain processors from project classpath
etProcessor path
fonctionne. Vous ne savez donc pas ce qui fonctionnera pour vous, mais essayez celle qui fonctionne.Et plutôt que de filmer dans le noir pendant des heures. Lire un peu comment les processeurs d'annotation fonctionnent et sont utilisés par le compilateur peut aider. alors lisez rapidement ci-dessous.
http://hannesdorfmann.com/annotation-processing/annotationprocessing101
la source
Cela a fonctionné pour moi:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processor
Cochez «activer le traitement des annotations».
Apply
Fermer
la source
J'ai essayé presque toutes les réponses mentionnées mais rien n'a fonctionné pour moi. Ma version gradle échouait à chaque fois. Je viens de trouver cette solution:
Ajoutez
annotationProcessor 'org.projectlombok:lombok'
votre build.gradle.Cela a fonctionné pour moi.
la source
Supprimer l'annotation @ Slf4J de la classe, puis la rajouter a fonctionné pour moi.
la source
1 Mes dépendances gradle lombok:
2 Après avoir activé "Annotations ..." dans IDEA (Paramètres), en tenant compte du fait que vous avez installé le plugin Lombok, cela a résolu le même problème
la source
Je voyais ce problème avec une ancienne version de Lombok lors de la compilation sous JDK8. La réinitialisation du projet sur JDK7 a permis de résoudre le problème.
la source
Cela n'aura pas été le problème d'OP, mais pour quiconque essaie tout sans succès:
J'avais des symptômes similaires. Chaque fois que je construisais après a
mvn clean
, il ne trouvait paslog
, ougetXYZ()
, oubuilder()
, ou quoi que ce soit.Après avoir lu toutes les réponses que j'ai pu trouver sur les problèmes QueryDSL / JPA / Hibernate / Lombok / IntelliJ / Maven en vain, j'ai découvert que le coupable était une importation statique
@Getter
unique d'une méthode annotée sur un champ statique .Printemps 1.15.14.RELEASE, Intellij 2019.1.1
la source
Ce n'est pas un problème IntelliJ. Si vous essayez sous la console, exécutez mvn install , se brise également. Toutes les annotations de lombok.extern nécessaires ajoutent des dépendances. Ce package regroupe les annotations suivantes:
Par exemple, pour Slf4j, il est nécessaire d'ajouter cette dépendance à votre pom.xml
la source
Après avoir activé les processeurs d'annotation et installé le plugin lombok, cela ne fonctionnait toujours pas. Nous avons contourné le problème en cochant l'option Idée "Déléguer la construction de l'EDI à la gradation"
la source
Ce qui a réglé les choses pour moi a été de cocher la case "Utiliser le registre des plugins" dans les paramètres Maven.
Le chemin est: Fichier -> Préférences -> Construction, exécution, déploiement -> Outils de construction -> Maven
la source
Supprimez le dossier .idea et les fichiers .iml dans chaque module et reconstruisez la solution.
la source
J'avais le plugin Lombok, les annotations étaient activées, il compilait à partir de la ligne de commande - tout et il ne voyait toujours pas mon projet comme maven (toutes les dépendances maven étaient rouges dans les fichiers source). Ensuite, j'ai cliqué deux fois sur SHIFT et cherché «maven» et parmi les résultats, il y avait «Recharger tous les projets Maven». Après l'avoir exécuté, l'onglet Maven est apparu et j'ai pu compiler, et tous les soulignements rouges dans le code source ont disparu.
la source
Une chose simple, mais je l'ai compris, c'est: j'ai manqué d'ajouter
@Log
à la classe.Cela peut aider quelqu'un.
la source
J'ai le même problème; J'utilise gradle et IDEA;
Il s'avère que cela est causé par la mauvaise version de gradle.
Dans gradle \ wrapper \ gradle-wrapper.properties, c'est:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
Cependant, j'ai spécifié la version dans IDEA comme étant
D:\Library\gradle-5.2.1
Après avoir abaissé la version gradle à 4.10.x, le problème est parti.
la source
Essayez de créer un
lombok.config
fichier dans le répertoire de base du projet et fournissez de lalombok.log.fieldName
valeur.Exemple:
lombok.log.fieldName = LOG
la source