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

3voto

Shreya Mishra Points 31

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 ça a marché.

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.20</version>
        <scope>provided</scope>
    </dependency>

0 votes

Quelle version d'IntelliJ utilisez-vous ? De même, quelle version de JDK ?

1voto

Tugrul Asik Points 703

Si tu as tout fait mentionnés dans cette question et C'est toujours un échec , n'oubliez pas à supprimer /cible sous vos projets. Et si cela échoue toujours, redémarrez votre IDE. Et si l'échec persiste, redémarrez votre ordinateur.

1voto

Sasi Kumar M Points 113

L'éditeur Jetbrains IntelliJ IDEA est compatible avec lombok sans plugin à partir de la version 2020.3.

J'utilisais la version 2020.2, j'ai fait la mise à jour vers 2020.3 et ça a marché comme ça.

1voto

wst Points 742

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 de Gradle, IntelliJ ne l'a toujours pas dans le chemin des classes. Ou bien elle est présente, mais configurée avec une portée différente (ex : test au lieu de compile.)

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+ENTER (ou OPTION+ENTER) 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 il 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 dans cet onglet).

0 votes

Cette solution devrait être beaucoup plus votée. J'ai enquêté sur ce problème pendant des heures, et c'est la seule chose qui a fonctionné.

1voto

Srikanth Reddy Points 119

J'ai été confronté à ce problème après avoir mis à jour l'IDEA en 2018.3. J'ai dû mettre à jour tous les plugins existants

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