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

1voto

Stepan Mozyra Points 11

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 les processeurs du classpath du projet.

Donc, sur le Processeurs d'annotation vous devez spécifier manuellement Chemin du processeur .

1voto

Vaibhav K Points 21

En dehors de ce qui est mentionné dans toutes les réponses, je dois ajouter le code ci-dessous dans la configuration de pom.xml pour que mvn clean install fonctionne. Avant d'ajouter ce code, j'obtenais "cannot found symbol" pour les getters et setters.

                    <annotationProcessorPath>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.8</version>
                    </annotationProcessorPath>

0voto

Sagiruddin Mondal Points 395

Pour moi, ce qui a marché :

  1. J'ai désinstallé le plugin Lombok fraîchement installé.
  2. J'ai coché "Activer le plugin d'annotation".
  3. J'ai sélectionné "Obtain processor from the project classpath" dans la même page

0voto

Pour IntelliJ IDEA 2020.1.1, l'activation du plugin Kotlin a permis de résoudre ce problème.

0voto

Blink Points 63

Après avoir activé les processeurs annotateurs, j'ai dû mettre à jour la dernière version de Lombok :

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.16</version>
    </dependency>

Version d'Intellij :

IntelliJ IDEA 2020.3 (Community Edition)
Build #IC-203.5981.155, built on November 30, 2020
Runtime version: 11.0.9+11-b1145.21 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.16
GC: ParNew, ConcurrentMarkSweep
Memory: 1981M
Cores: 8
Non-Bundled Plugins: org.intellij.plugins.hcl, Lombook Plugin, org.sonarlint.idea, in.1ton.idea.spring.assistant.plugin, org.jetbrains.kotlin, gherkin, cucumber-java

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