J'ai un projet basé sur Gradle qui utilise Lombok. J'ai importé ce projet dans IntelliJ IDEA 14.1 (à l'aide de la méthode d'importation Import External Model). Je peux exécuter les tests unitaires JUnit4 sans problème dans Gradle, mais IntelliJ semble avoir du mal à voir les Getters générés par Lombok. Cela m'empêche d'exécuter les tests dans IDEA.
Pour m'assurer que ce n'était pas un problème de configuration, j'ai créé un projet très simple et confirmé que le même problème se produit dans le projet test simple.
Mes versions: Gradle: gradle-2.3-all via Gradle wrapper
IDÉE INTELLIGENT: IU-141.713
Lombok Plugin: 0.9.2
Qu'est-ce que j'oublie ici?
Mise à jour Par ne peut pas 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écompilées montrent les getters et les setters, mais je reçois ces erreurs lorsque je demande à IntelliJ d'exécuter l'application ou les tests unitaires.
Vous devez activer le préprocesseur d'annotation . Voir la documentation ici .
De plus, 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:
Dans mon cas, le problème est survenu après la mise à jour de IntelliJ via Toolbox.
Le drapeau "Activer le traitement des annotations" a été désactivé (malgré l'importation des paramètres de la version précédente d'IntelliJ), je l'ai donc activé . Cela n'a pas résolu le problème après le redémarrage, nettoyage, génération.
Cependant, la réintégration du plugin Lombok a aidé!
EDIT: Apparemment, c’est le problème de compatibilité du plugin Lombok avec IntelliJ 2018.1, une mise à niveau du plugin à la version 0.17 est requise pour les utilisateurs d’IntelliJ.
Extrait du changelog du plugin Lombok:
Le plugin de support Lombok a été mis à jour vers la v0.17: - Corrigé (# 465): compatibilité du plug-in avec IntelliJ 2018.1
On peut le voir dans le dossier de construction.
Après avoir activé le processeur d'annotation et installé le plug-in Lombok, si vous obtenez toujours "erreur de symbole introuvable" sur la méthode générée par Lombok, essayez de vérifier la configuration de la gradation, qui se trouve dans
Préférence -> Construction, Exécution, Déploiement -> Graduer,
si vous utilisez la distribution de dégradés locale, remplacez-le par utilisez le wrapper de dégradé par défaut .
J'ai eu cette erreur lorsque le wrapper de niveaux de mon projet est 4.10.2 mais que ma version de gradle locale est la version 5.1.1 et que je résous le problème après l'avoir modifiée pour utiliser le wrapper de niveaux par défaut.
Dans le cas de Lombok, IntelliJ vous permet de rechercher des utilisations de variable, ce qui inclut également les accesseurs et les setters. Il suffit de cliquer sur le nom de la variable et option/alt + f7
.
Cela fonctionne dans Intellij 2016 et le plugin Lombok 0.13.16. Je ne suis pas sûr des anciennes versions.