web-dev-qa-db-fra.com

Impossible de compiler le projet lorsque j'utilise Lombok sous IntelliJ IDEA

J'essaie d'utiliser Lombok dans le projet que je développe avec IntelliJ IDEA 11.

J'ai installé un plug-in tiers pour IDEA et il 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 construis mon compilateur de projet spits: cannot find symbol variable log.

Pourriez-vous s'il vous plaît me dire ce qui me manque ici?

Update: Il s'est avéré que son processus d'annotation RequestFactory échouait.

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 basculer sur Scala .

150
expert

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 ...> Construction, Exécution, Déploiement> Compilateur> Processeurs d'annotation

322
user2021572

Activer le 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 de les deux espaces disponibles. 

1.) Idée Intellij -> Préférences -> Compilateur -> Processeurs d'annotation

2.) Fichier -> Autres paramètres -> Paramètres par défaut -> Compilateur -> Processeurs d'annotation

69
greperror

Représentation graphique de la résolution de ce problème. 

Commencez par activer les processeurs d'annotation et essayez. Cela peut ou peut ne pas fonctionner.  enter image description here

Si vous postez cela, vous pouvez installer le plugin Lombok depuis intellij. (Après l’installation, Intellij redémarrera pour l’activer. Assurez-vous donc d’enregistrer votre travail. (Intellij enregistre toutes les modifications avant de redémarrer, juste pour être sûr). ) capture d'écran ci-dessous: 

 enter image description here

37
CodeShadow

Comme noté 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'annotations pour qu'ils fonctionnent avec lombok". Cela a résolu mon problème. Notez que j’ai ajouté le plug-in Scala avant de recevoir cette erreur. Je suppose donc que le plug-in a modifié certains des paramètres ci-dessus.

7
Omri Sivan

il existe un plugin pour intellij. voir ici: https://projectlombok.org/download.html

6
mt.uulu

Si vous avez vérifié ces deux étapes comme suit 

  1. Activer les annotations: il s’agit d’une vérification effectuée dans les préférences IntelliJ
  2. Importation de lombok dans IntelliJ classPath (Préférences -> Plugins)

et toujours avoir des erreurs alors veuillez vérifier le compilateur - s'il s'agit deJAVACou Eclipse .

Vous pouvez vérifier le compilateur dans Préférences -> Construction, Exécution, Déploiement -> Compilateur -> Compilateur Java.

Changez le compilateur Use en Javac (s’il s’agit d’Eclipse). C'est ce qui a fonctionné pour moi.

5
Saurabh Saha

Avez-vous lombok comme dépendance de votre projet? lombok.jar doit figurer sur le chemin de classe lors de la compilation du projet, qui utilise l'une des annotations de lombok.

3
mplushnikov

J'étais sur Mac

Voici ma version IntelliJ IDEA et Mac - IntelliJ IDEA 2017.1.5 Version n ° IU-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 aussi dû installer le plugin Lombok pour que cela fonctionne. 

3.) Intellij IDEA -> Préférences -> Plug-ins -> Parcourir les référentiels-> Recherchez "Lombok" -> installer le plug-in -> Appliquer et redémarrer IDEA

3
so-random-dude

1 installer le plugin Lombok pour IDEA

Idée Intellij -> Préférences -> Plug-ins -> taper lombok -> Rechercher dans les référentiels -> installer -> redémarrer IDEA

2 plug config lombok plugin

Activer le traitement des annotations le fera fonctionner

Mais si vous êtes sur un Mac, assurez-vous d'activer le traitement des annotations aux deux emplacements suivants:

Intellij Idea -> Préférences -> Construire, Exécution, Déploiement -> 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".

2
Bluce Liu

Pour ceux qui ont encore des problèmes:

Outre les étapes ci-dessus d'activation des processeurs d'annotation et d'installation du plug-in IntelliJ Lombok, j'ai également dû Construire -> Reconstruire le projet.

2
JasnaRB

Pour que cela fonctionne, installez simplement le "Lombok Plugin" pour IntelliJ. Vous n'avez rien à faire pour activer "Processeurs d'annotation", comme l'ont suggéré d'autres commentateurs. (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 référentiels", recherchez "Lombok" et installez le plugin Lombok. Vous serez invité à redémarrer IntelliJ. Ensuite, vous devriez pouvoir compiler à partir d’IntelliJ et vous ne recevrez plus d’inspections d’erreur. 

1
user64141

Cela n'a pas fonctionné pour moi avec aucune 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>
1
Shreya Mishra

J'ai eu un problème similaire lors de la construction avec JDK8, redéfini le projet sur JDK7 et cela a bien fonctionné. Peut-être une version plus ancienne de Lombok qui ne sera pas compilée sous JDK8.

0
John Chapman

Si l'attribut foo est booléen, il fournit isFoo() plutôt que getFoo() de Lombok @Data.

0
Yao Li

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 de Gradle, IntelliJ ne l'a toujours pas dans le chemin d'accès aux classes. 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 plug-in est installé et que le traitement des annotations est activé, comme indiqué dans d'autres réponses.

Si vous avez toujours des annotations non reconnues, placez le curseur dessus, appuyez sur ALT + ENTRÉE (ou OPTION + ENTRÉE) pour voir 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 il peut résoudre votre problème.

Vous pouvez vérifier la bibliothèque et son étendue dans: Onglet Paramètres du projet/Modules/Dépendances (recherchez lombok ici).

0
wst

Juste pour référence en utilisant IntelliJ 2018.3, j'ai résolu ce problème (en utilisant l'annotation @Data pour insérer getter/setter) en procédant comme suit:

  1. Fichier -> Paramètres -> Construire, Exécuter, Déployer -> Processeurs d'annotation -> Activer le traitement des annotations;

 enter image description here

N'oubliez pas de Appliquer le changement.

  1. Installez le plugin lombok dans le même dialogue de paramétrage;

 enter image description here

  1. Cela semble assez bon pour le moment, il faut redémarrer IntelliJ, puis reconstruire votre projet.

Meilleurs vœux :)

0
Hearen

Si vous avez essayé toutes les solutions présentées ici et que vous ne pouvez toujours pas compiler les sources, regardez également ici: L'importation statique de la classe de générateur interrompt la génération de code-octet dans Maven - examinez vos sources si elles ont de telles importations statiques. Cela affecte maven plugin, donc la compilation échouera sur d'autres systèmes de compilation en dehors d'IntelliJ IDEA.

0
cybersoft

Assurez-vous qu'il est ajouté correctement

dependencies {
 ...
    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'

}
0
Yevhenii Tsybaiev

Installez le plug-in ci-dessous et redémarrez le 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
0
firstpostcommenter

Vous pouvez corriger cannot find symbol variable log lors de l'utilisation de lombok dans IntelliJ IDEA 2017.1.3 en procédant comme suit:

Préférences IntelliJ> Construire, Exécuter, Déployer> Annotation Processeurs> [Vérifier] Activer le traitement des annotations> Appliquer

0
realPK

Dans mon cas, toutes les choses mentionnées ci-dessous étaient en place et cela ne fonctionnait toujours pas. 

  1. J'avais le plugin Lombok installé correctement
  2. Processeurs d'annotation, également cochés.
  3. Mon compilateur Java a été défini sur JAVAC 

Pour résoudre mes problèmes, je devais 

  1. Mettez à jour lombok avec la dernière version (v0.15) à compter du 7 octobre 2017.
  2. Redémarrez IntelliJ.
  3. Reconstruire le projet. 

Voir les captures d'écran sur la mise à jour et la reconstruction du projet ci-dessous.

Comment mettre à jour lombok

Comment reconstruire le projet

FWIW - Lorsque vous définissez les annotations du compilateur comme décrit ci-dessus, veillez également à rechercher les profils que vous utilisez, tels que "Processeurs d'annotations par défaut Maven".

0
l8Again

J'ai rencontré ce problème après la mise à jour de IDEA à 2018.3. Je devais mettre à jour tous les plugins existants

0
Srikanth Reddy

Faced similar problem. Below fixed worked for me.
téléchargez (à partir d'ici [ https://projectlombok.org/download][1] ) et ajoutez le fichier jar dans la structure de votre projet.

Étapes: Fichier-> Structure de projet-> Bibliothèques globales

0
krishna Murari

J'ai eu le même problème, je vais donc laisser cela ici pour une référence future à mon oubli. 

Lorsque Alt+Enter sur l'annotation @Slf4j, 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;

0
Sok Pomaranczowy