J'essaie d'utiliser Lombok dans mon projet que je développe en utilisant IntelliJ IDEA 11.
J'ai installé un plugin tiers pour IDEA et cela semble bien fonctionner car IDEA voit toutes les méthodes / champs générés automatiquement.
J'ai donc une classe qui utilise Slf4j. Je l'ai annoté comme ça
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestClass
{
public TestClass()
{
log.info("Hello!");
}
}
Mais quand je bâtirai mon compilateur projet tournebroches: cannot find symbol variable log
.
Pourriez-vous me dire ce qui me manque ici?
Mise à jour: il s'est avéré que son processus d'annotation RequestFactory échoue.
input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}
annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]
Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.
cannot find symbol variable log
Des idées sur les solutions de contournement?
Update2: Ce n'est peut-être pas quelque chose que les lecteurs veulent entendre, mais j'ai fini par passer à Scala .
java
intellij-idea
lombok
expert
la source
la source
Réponses:
Je l'ai corrigé dans IDEA 12 en cochant la case
Enable annotation processing
:Pour IDEA 2016.2:
Après l'activation, exécutez Build -> Rebuild Project pour que les annotations soient reconnues et éliminent les erreurs.
Pour IDEA 2019.2.1, selon la configuration du projet, l'installation du plugin Project Lombok peut ne pas être suffisante. Voici une autre façon d'utiliser Project Lombok avec IntelliJ IDEA:
$HOME/dev/java/project/libs
).lombok
$HOME/dev/java/project/libs/lombok.jar
lombok
àProject Lombok 1.18.8
.Le projet peut désormais importer à partir du
lombok
package et utiliser les annotations Project Lombok (par exemple,lombok.Setter
etlombok.Getter
).la source
L'activation du traitement des annotations le fera fonctionner
Mais si vous êtes sur un Mac , assurez-vous d'activer le traitement des annotations (cochez la case) à partir des deux emplacements disponibles.
1.) Intellij Idea -> Préférences -> Compilateur -> Processeurs d'annotation
2.) Fichier -> Autres paramètres -> Paramètres par défaut -> Compilateur -> Processeurs d'annotation
la source
Représentation graphique de la résolution de ce problème.
Activez d'abord les processeurs d'annotation et essayez. Cela peut ou peut ne pas fonctionner.
Après cela, vous pouvez installer le plugin lombok à partir d'intellij, (après l'installation, Intellij redémarrera pour activer le plugin, alors assurez-vous de sauvegarder votre travail. (Intellij enregistre toutes les modifications avant de redémarrer, juste pour être sûr).) ) capture d'écran ci-dessous:
la source
exemple pour Gradle:
la source
Juste pour référence en utilisant IntelliJ 2018.3 , j'ai résolu ce problème (en utilisant l'
@Data
annotation pour insérergetter/setter
) en suivant les trois étapes:Meilleurs vœux :)
la source
Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [module-core,module-utils] are excluded from annotation processing
Si vous avez coché ces deux étapes comme suit
et toujours obtenir des erreurs, veuillez vérifier le compilateur - s'il s'agit de JAVAC ou ECLIPSE .
Vous pouvez vérifier le compilateur dans Préférences -> Build, Execution, Deployment -> Compiler -> Java Compiler.
Remplacez le compilateur Use par Javac (s'il s'agit d'Eclipse). C'est ce qui a fonctionné pour moi.
la source
dans la dernière version de Gradle, vous devez utiliser annotationProcessor:
la source
Comme indiqué ici , citez: "Vous devez activer l'option du compilateur externe et activer les processeurs d'annotation ou désactiver le compilateur externe et désactiver tous les compilateurs d'annotation pour fonctionner avec lombok". Cela a résolu mon problème. Notez que j'ai ajouté le plugin Scala avant de recevoir cette erreur, donc je soupçonne que le plugin a changé certains des paramètres ci-dessus.
la source
il existe un plugin pour intellij. voir ici: https://projectlombok.org/download.html
la source
Avez-vous lombok comme dépendance de votre projet? lombok.jar doit se trouver sur le chemin d'accès aux classes lors de la compilation du projet, qui utilise l'une des annotations lombok.
la source
j'étais sur
Mac
Ceci est ma version IntelliJ IDEA et Mac - IntelliJ IDEA 2017.1.5 Build # IU-171.4694.70 --- Mac OS X 10.12
En plus d'activer le traitement des annotations (cochez la case) à ces 2 endroits.
.
J'ai également dû installer le plugin Lombok pour le faire fonctionner.
la source
Pour ceux d'entre vous qui ont encore des problèmes:
En plus des étapes ci-dessus d'activation des processeurs d'annotation et d'installation du plugin IntelliJ Lombok, j'ai également dû construire -> reconstruire le projet.
la source
1, installez le plugin lombok pour IDEA
Intellij Idea -> Préférences -> Plugins -> tapez dans lombok -> Rechercher dans les référentiels -> installer -> redémarrer IDEA
2, plugin config lombok
L'activation du traitement des annotations le fera fonctionner
Mais si vous êtes sur un Mac, assurez-vous d'activer le traitement des annotations aux deux endroits suivants:
Intellij Idea -> Préférences -> Build, Execution, Deployment -> Compiler -> Annotation Processors, cochez la case "Enable annotation processing". Fichier -> Autres paramètres -> Paramètres par défaut -> Génération, exécution, déploiement -> Compilateur -> Processeurs d'annotation, cochez la case "Activer le traitement des annotations".
la source
Cela n'a pas fonctionné pour moi avec l'une des solutions ci-dessus. J'ai ajouté
<scope>provided</scope>
à la dépendance dans pom.xml et cela a fonctionné.la source
J'ai rencontré ce problème après avoir mis à jour IDEA vers 2018.3. J'ai dû mettre à jour tous les plugins existants
la source
Après avoir essayé toutes les suggestions ici, j'ai également trouvé un autre type de solution. Il semble que parfois IDEA ne peut pas obtenir de processeurs à partir du chemin de classe du projet.
Ainsi, dans l' onglet Paramètres des processeurs d'annotation , vous devez spécifier manuellement le chemin du processeur .
la source
J'ai eu un problème similaire lors de la construction avec JDK8, j'ai remis le projet à JDK7 et cela a bien fonctionné. Il pourrait s'agir d'une ancienne version de Lombok qui ne se compile pas sous JDK8.
la source
J'ai eu le même problème, donc je vais laisser cela ici pour référence future de mon inconscience.
Lors
Alt+Enter
de l'@Slf4j
annotation, j'ai choisi par erreur une importation non valide. Donc, si le code ne compile pas, assurez-vous d'importer:import lombok.extern.slf4j.Slf4j;
la source
FWIW - Lorsque vous définissez les annotations du compilateur comme décrit ci-dessus, assurez-vous également de vérifier les profils que vous utilisez, tels que "Processeurs d'annotations par défaut Maven".
la source
Il peut arriver que même si vous l'avez configuré correctement et qu'il soit visible parmi les bibliothèques et dans la liste des dépendances Gradle, IntelliJ ne l'a toujours pas dans le chemin de classe. Ou il est là, mais configuré avec une portée différente (ex: test au lieu de compiler.)
Tout d'abord, assurez-vous que le plugin est installé et que le traitement des annotations est activé, comme indiqué dans d'autres réponses.
Si vous avez encore une annotation non reconnue, placez le curseur dessus, appuyez sur ALT + ENTRÉE (ou OPTION + ENTRÉE) et voyez si vous avez une option de menu
Add library: Gragle: org.projectlombok:lombok:VERSION to class path
. Si vous pouvez le voir, choisissez celui-ci et cela pourrait résoudre votre problème.Vous pouvez vérifier la bibliothèque et sa portée dans: Paramètres du projet / modules / onglet Dépendances (recherchez lombok là-dedans)
la source
Si vous avez essayé toutes les solutions présentées ici et que vous ne parvenez toujours pas à compiler les sources, regardez également ici: L'importation statique de la classe de générateur interrompt la génération de bytecode dans Maven - regardez vos sources si elles ont de telles importations statiques. Cela affecte le plugin maven, donc la compilation échouera sur d'autres systèmes de build en dehors d'IntelliJ IDEA.
la source
Dans mon cas, j'avais toutes les choses mentionnées ci-dessous en place et cela ne fonctionnait toujours pas.
Pour résoudre mes problèmes, je devais
Voir les captures d'écran sur la mise à jour et la reconstruction du projet ci-dessous.
Comment mettre à jour lombok
Comment reconstruire un projet
la source
Vous pouvez résoudre ce problème
cannot find symbol variable log
lors de l'utilisation de lombok dans IntelliJ IDEA 2017.1.3 en procédant comme suit:la source
Installez le plug-in ci-dessous et redémarrez l'IDE pour résoudre les erreurs:
Activer le processeur d'annotation:
la source
J'ai fait face à un problème similaire. Ce qui suit a fonctionné pour moi.
téléchargez (à partir d'ici https://projectlombok.org/download ) et ajoutez le pot dans la structure de votre projet.
Étapes: Fichier -> Structure du projet -> Bibliothèques globales
la source
Si les bibliothèques lombok sont définies correctement, comme beaucoup l'ont mentionné ci-dessus, cliquez sur l'annotation qui ne se compilera pas, Alt-Enter, une importation correcte apparaîtra et le code se compilera. - il m'a fallu un certain temps pour le comprendre. Je le mets ici juste au cas où les gens pourraient manquer la simple évidence.
la source
Pour les utilisateurs d'Eclipse sur MacOS, procédez comme suit. Ça a marché pour moi.
Eclipse.app/Contents/MacOS
répertoire.-javaagent:lombok.jar
à la fin du fichier Eclipse.app/Contents/Eclipse/eclipse.ini.référençant cette
la source
En dehors de ce qui est mentionné dans toutes les réponses, je dois ajouter le code ci-dessous dans la configuration pom.xml pour que l'installation propre de mvn fonctionne. Avant d'ajouter ce code, j'obtenais un symbole introuvable pour les getters et les setters.
la source
Pour moi, ce qui a fonctionné:
la source
Pour IntelliJ IDEA 2020.1.1, l'activation du plug-in Kotlin a résolu ce problème.
la source