247 votes

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

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

J'ai installé Plugin tiers pour IDEA et cela semble fonctionner correctement car IDEA voit toutes les méthodes/champs autogénérés.

J'ai donc une classe qui utilise Slf4j. Je l'ai annotée comme ceci

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}

Mais quand je construis mon projet, le compilateur crache : cannot find symbol variable log .

Pouvez-vous me dire ce que j'ai manqué ici ?

Mise à jour : Il s'avère que c'est le 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 ?

Mise à jour2 : Peut-être que ce n'est pas quelque chose que les lecteurs veulent entendre mais j'ai fini par passer à Scala .

0 votes

Les erreurs apparaissent même sans le plugin. Je ne suis pas en mesure d'exécuter les tests d'un projet si Lombok figure dans mes dépendances pom.xml.

0 votes

Il y a une autre réponse stackoverflow.com/a/63632563/5410940

15voto

J'utilise IntelliJ IDEA 2020.3 (Community Edition).

Ici, en plus d'installer le plugin Lombok et d'activer les annotations (expliqué par d'autres réponses). J'ai également eu besoin d'activer le drapeau -Djps.track.ap.dependencies=false à l'option Processus de construction¹.

Je n'ai pas eu besoin d'utiliser l'approche -javaagent, ni de configurer le classpath.

¹. Allez-y : Fichier | Paramètres | Construction, exécution, déploiement | Compilateur | Champ "Options VM du processus de construction partagé".

Références :

0 votes

Merci, ça a marché comme sur des roulettes pour 2020.3 CE !

12voto

Hearen Points 2079

Juste pour référence, en utilisant IntelliJ 2018.3 J'ai résolu ce problème (en utilisant @Data annotation à insérer getter/setter ) en suivant les trois étapes :

  1. Fichier -> Paramètres -> Construction, Exécution, Déploiement -> Processeurs d'annotation -> Activer le traitement des annotations ;

enter image description here

N'oubliez pas de Appliquer le changement.

  1. Installer le plugin lombok dans la même boîte de dialogue de paramétrage ;

enter image description here

  1. Cela semble suffisant pour l'instant, cela nécessite de redémarrer IntelliJ puis de reconstruire votre projet.

Meilleurs vœux :)

0 votes

Avez-vous utilisé maven ou gradle ? J'ai un problème pour faire fonctionner lombok pour un projet multi-modules. Je continue à obtenir l'erreur : 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

0 votes

@0x01Brain I était J'utilisais maven à l'époque, mais j'utilise maintenant gradle à la place. Quant à votre question, j'espère que vous pouvez commencer une nouvelle question spécifique pour décrire les détails et il y a beaucoup d'experts qui vous aideront ;)

0 votes

C'est pas grave, j'ai réussi à le compiler maintenant, merci. J'avais un conflit dans les dépendances : module-core était importé dans le module utils et le module utils était importé dans le module core, ce qui créait un conflit.

9voto

Saurabh Saha Points 742

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 d'IntelliJ les préférences.
  2. Importation de lombok dans le classPath d'IntelliJ (Préférences -> Plugins)

et vous obtenez toujours des erreurs alors veuillez vérifier le compilateur - si c'est le cas JAVAC ou ECLIPSE .

Vous pouvez vérifier le compilateur dans Préférences -> Build,Execution,Deployment -> Compilateur -> Compilateur Java.

Changez le compilateur Use pour Javac (si c'est Eclipse). C'est ce qui a fonctionné pour moi.

7voto

Omri Sivan Points 91

Comme indiqué ici Je cite : "Vous devez activer l'option de 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 modifié certains des paramètres ci-dessus.

7voto

mt.uulu Points 800

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

2 votes

Ce plugin peut être installé dans le menu Settings/Plugins d'Intellij. Assurez-vous que vous avez la dernière version du plugin installée. La mise à jour vers le dernier plugin a fonctionné pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X