IntelliJ IDEA ne peut pas voir le code généré par Lombok
j'ai un projet basé sur Gradle qui utilise lombok. J'ai importé ce projet dans IntelliJ idée 14.1 (en utilisant le Importer Le Modèle Externe méthode d'importation). Je peux exécuter les tests de L'unité JUnit4 sans problème dans Gradle, mais IntelliJ semble avoir un problème à voir les Getters générés par Lombok. Cela m'empêche d'effectuer les tests dans IDEA.
pour être sûr que ce n'était pas un problème, j'ai créé un projet Très simple et a confirmé que le même la question se pose dans le projet d'essai simple.
mes versions:
Gradle: gradle-2.3-le tout via Gradle wrapper
Intellij idée: IU-141.713
Plugin Lombok: 0.9.2
Qu'est-ce que je rate ici?
mise à Jour Par impossible de voir je ne veux pas dire physiquement invisible. Je veux dire ceci:
/home/meeee/workspace/junit-lombok-idea/lib/src/main/java/com/example/jumbokea/Main.java
Error:(10, 11) java: cannot find symbol
symbol: method setIntField(int)
location: variable sc of type com.example.jumbokea.SomeClass
Error:(12, 41) java: cannot find symbol
symbol: method getIntField()
location: variable sc of type com.example.jumbokea.SomeClass
Error:(14, 33) java: constructor AnotherClass in class com.example.jumbokea.AnotherClass cannot be applied to given types;
required: no arguments
found: float,com.example.jumbokea.SomeClass
reason: actual and formal argument lists differ in length
Error:(16, 46) java: cannot find symbol
symbol: method getSomeFloat()
location: variable ac of type com.example.jumbokea.AnotherClass
Error:(17, 43) java: cannot find symbol
symbol: method getSomeClass()
location: variable ac of type com.example.jumbokea.AnotherClass
Les classes décomposées montrent les getters et les setters, mais j'obtiens ces erreurs quand J'obtiens IntelliJ pour exécuter le 'app' ou les tests Unitaires.
5 réponses
vous devez activer le préprocesseur d'annotation. Voir la documentation ici.
en outre, vous devriez installer le plugin lombok si ce n'est déjà fait
j'ai réussi à résoudre ce problème en procédant comme suit:
- installez le plugin Lombok
- Activer Le Traitement Des Annotations voir documentation
- installez la dernière Maven sur votre système et configurez IntelliJ pour l'utiliser (par opposition à la Maven) voir documentation
dans mon cas, le problème est survenu après la mise à jour IntelliJ via Toolbox.
" Enable annotation processing " drapeau a été désactivé (malgré l'importation des paramètres de la version précédente IntelliJ), donc je l'ai activé. Cela n'a pas résolu le problème après redémarrage, Nettoyage, Construction.
cependant, résintaller le plugin lombok a aidé!
EDIT: il semble que ce soit le problème avec la compatibilité du plugin lombok avec IntelliJ 2018.1, la mise à niveau du plugin à 0.17 is requis pour les utilisateurs IntelliJ.
Lombok plugin changelog excerpt:
support du plugin Lombok mis à jour en v0.(17): - Correction (#465): Correction de compatibilité avec IntelliJ 2018.1
dans le cas de Lombok, IntelliJ vous permet de rechercher des usages de variable, qui inclura aussi getters et setters. Il suffit de cliquer nom de la variable et option/alt + f7
.
cela fonctionne dans Intellij 2016 et Lombok plugin 0.13.16. Je ne suis pas sûr des versions plus anciennes.