Impossible de compiler le projet lorsque j'utilise Lombok sous IntelliJ IDEA
J'essaie d'utiliser Lombok dans mon projet que je développe en utilisant IntelliJ IDEA 11.
J'ai installé plugin 3rd-party pour IDEA et il semble fonctionner correctement 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 ceci
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestClass
{
public TestClass()
{
log.info("Hello!");
}
}
Mais quand je construis mon compilateur de projet crache: cannot find symbol variable log
.
Pourriez-vous me dire ce qui me manque ici ?
Mise à Jour:, Il s'est avéré que c'est Processus d'annotation RequestFactory qui é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: peut-être que ce n'est pas quelque chose que les lecteurs veulent entendre, mais j'ai fini par passer à Scala.
21 réponses
Je l'ai corrigé dans IDEA 12 en cochant la case Enable annotation processing
dans:
Paramètres - > Compilateur - > Processeurs D'Annotation
Pour IDEA 2016.2:
Préférences... > Construire, Exécuter, Déployer > Compilateur > Processeurs D'Annotation
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) depuis les deux endroits disponible.
1.) Intellij Idea -> Préférences -> Compilateur - > Processeurs D'Annotation
2.) Fichier - > Autres Paramètres - > Paramètres Par Défaut -> Compilateur - > Processeurs D'Annotation
Représentation de l'image de la résolution de ce problème.
Activez D'abord les processeurs d'annotation et essayez. Cela peut ou peut ne pas fonctionner.
Postez cela, vous pouvez installer le plugin lombok à partir d'intellij, (après L'installation Intellij redémarrera pour activer le plugin, alors assurez-vous d'enregistrer votre travail.(Intellij enregistre toutes les modifications avant le redémarrage, juste pour être du bon côté.)) capture d'écran ci-dessous:
Comme indiqué ici , Citation: "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 travailler avec lombok". Cela a réglé 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.
Il existe un plugin pour intellij. voir ici: https://projectlombok.org/download.html
Si vous avez coché ces deux étapes, comme suit
- activer les annotations: ceci est une vérification effectuée dans IntelliJ préférence.
- Importation de lombok dans IntelliJ classPath (Préférences - > Plugins)
Et toujours des erreurs, alors , veuillez vérifier le compilateur - si c'est JAVAC ou ECLIPSE.
Vous pouvez vérifier le compilateur dans Préférences - > construction, exécution, déploiement -> compilateur -> compilateur Java.
Modifier le compilateur Use pour Javac (si C'est Eclipse). C'est ce qui a fonctionné pour moi.
Avez-vous lombok comme dépendance de votre projet? Lombok.jar doit être sur le classpath lors de la compilation du projet, qui utilise l'une des annotations lombok.
1、Installez le plugin lombok pour IDEA
Intellij Idea -> Préférences -> Plugins -> type de lombok -> Recherche dans les Dépôts -> installer -> redémarrer l'IDÉE
2、 config lombok plugin
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 - > Preferences - > Build, Execution, Deployment - > Compilateur - > Processeurs D'Annotation, cochez la case "Activer le traitement des annotations". Fichier - > autres paramètres - > Paramètres par défaut - > construire, exécution, déploiement - > compilateur - > processeurs D'Annotation, cochez la case "Activer le traitement des annotations".
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.
Pour que cela fonctionne, installez simplement le "plugin Lombok" pour IntelliJ. Vous n'avez pas besoin de faire quoi que ce soit avec l'activation des "processeurs D'Annotation", comme d'autres commentateurs l'ont suggéré. (J'ai testé cela avec la dernière version D'IntelliJ IDEA, actuellement 2017.1.2). Pour installer le plugin, allez dans Paramètres, puis Plugins, puis cliquez sur le bouton" Parcourir les dépôts", puis recherchez" Lombok", et installez le plugin Lombok. Vous serez invité à redémarrer IntelliJ. Par la suite, vous devez être capable de compiler à partir D'IntelliJ, et vous ne recevrez plus d'inspections d'erreur.
J'étais sur Mac
Ceci est mon idée IntelliJ et la Version Mac-IntelliJ IDEA 2017.1.5 Build #UI-171.4694.70 --- Mac OS X 10.12
En plus d'activer le traitement des annotations (cochez la case) à ces 2 endroits.
1.) Intellij IDEA -> Préférences -> compilateur - > processeurs D'Annotation
.
2.) Fichier - > Autres Paramètres - > Paramètres Par Défaut -> Compilateur - > Processeurs D'Annotation
J'ai dû installer le plugin Lombok trop pour le faire fonctionner.
3.) Intellij IDEA - > Préférences - > Plugins - > parcourir les dépôts - > rechercher "Lombok" - > installer le plugin - > appliquer et redémarrer IDEA
J'ai eu un problème similaire lors de la construction avec JDK8, remettre le projet à JDK7 et cela a bien fonctionné. Pourrait être une ancienne version de Lombok qui ne compilera pas sous JDK8.
J'ai eu le même problème donc je vais laisser ceci ici pour référence future de mon oubli.
Lorsque Alt+Enter
ING sur @Slf4j
annotation j'ai choisi par erreur l'importation invalide. Donc, si le code ne compile pas, assurez-vous d'importer:
import lombok.extern.slf4j.Slf4j;
FWIW - lorsque vous définissez des 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".
Il peut arriver que même si vous l'avez configuré correctement et qu'il est visible parmi les bibliothèques et dans la liste des dépendances Gradle, IntelliJ ne l'ait toujours pas dans le chemin de la 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 l'annotation n'est toujours pas 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, choisir celui-ci et il peut résoudre votre problème.
Vous pouvez vérifier la bibliothèque et sa portée dans: Onglet Paramètres / Modules / dépendances du projet (recherchez lombok)
Si vous avez essayé toutes les solutions présentées ici et que vous ne pouvez toujours pas compiler les sources, regardez aussi ici: l'importation statique de la classe builder brise 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 construction en dehors D'IntelliJ IDEA.
Dans mon cas, j'avais toutes les choses mentionnées ci-dessous en place et cela ne fonctionnait toujours pas.
- j'avais lombok plugin installé correctement
- processeurs D'Annotation, également cochés.
- mon compilateur Java a été défini sur JAVAC
Pour résoudre mes problèmes, je devais
- Mettez lombok à jour vers la dernière version (v0. 15) au 7 octobre 2017.
- Redémarrez IntelliJ.
- reconstruire le projet.
Voir les captures d'écran sur la mise à jour et la reconstruction du projet dessous.
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é.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
Vous pouvez corriger cannot find symbol variable log
lorsque vous utilisez lombok dans IntelliJ IDEA 2017.1.3 en faisant ceci:
IntelliJ Préférences > Construire, L'Exécution, Le Déploiement > Annotation Processeurs > [cocher] Activer le traitement des annotations > Appliquer
Installez le plugin ci-dessous et redémarrez L'IDE pour résoudre les erreurs:
File -> Settings -> Plugins-> Browse Repositories -> Lombok Plugin
Activer le processeur d'annotation:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
File -> Other Settings -> Default Settings -> Compiler -> Annotation Processors
Faced similar problem.
Below fixed worked for me.
télécharger (à partir d'ici [https://projectlombok.org/download][1]) et ajouter le jar
dans votre projet de la structure.
Étapes: Fichier - > Structure Prpject - >Bibliothèques Globales