web-dev-qa-db-fra.com

Les annotations de Lombok ne sont pas compilées sous Intellij idea

  1. J'ai installé le plugin pour intellij idea (lombok-plugin-0.8.6-13).
  2. Ajout de lombok.jar dans classpath
  3. Je peux trouver des getters et des setters dans la fenêtre de la structure. Et Intellij ne montre aucune erreur.
  4. Paramétrage - Lombok plugin - Configuration Intellij vérifiée pour Lombok, elle indique que "la configuration de IntelliJ semble être correcte".

Il semble que tout va bien. Mais lorsque je compile un test, des erreurs surviennent: impossible de trouver les méthodes getXXX et setXXX.

J'ai ouvert le fichier .class avec IntelliJ et découvert qu'il n'y avait pas de méthodes setXXX et getXXX.

Quelqu'un pourrait-il me dire pourquoi?

  • plugin: lombok-plugin-0.8.6-13
  • lombok.jar: 1.14.0
  • idée: 13.0.2 pour linux
  • jdk: 1.7.0_21
163
yurnom

Afin de résoudre le problème posé:

  • Préférences (Ctrl + Alt + S)
    • Construction, exécution, déploiement
      • Compilateur
        • Processeurs d'annotation
          • Activer le traitement des annotations

Assurez-vous que le plugin Lombok pour IntelliJ est installé!

  • Préférences -> Plugins
  • Recherche de "Lombok Plugin"
  • Cliquez sur Parcourir les référentiels ...
  • Choisissez le plugin Lombok
  • Installer
  • Redémarrer IntelliJ
311
mike

Si vous utilisez le compilateur Eclipse avec Lombok, cette configuration a finalement fonctionné pour moi:

  • IDÉE 14.1
  • Plugin Lombok
  • .../ Compilateur / Compilateur Java > Utiliser le compilateur: - Eclipse
  • .../ Compilateur / Processeurs d'annotation > Activer le traitement des annotations: - vérifié (configuration par défaut)
  • .../ Compilateur > Processus de construction supplémentaire VM options: - javaagent: lombok.jar

La partie la plus importante est la dernière, la mienne ressemble à ceci: enter image description here

Un plugin est nécessaire pour l'éditeur IntelliJ afin de reconnaître les getters et les setters, javaagent est nécessaire pour que le compilateur Eclipse soit compilé avec lombok.

43
Juraj Misur

Si vous utilisez Intellij sur Mac, cette configuration a finalement fonctionné pour moi.

Installations: Intellij

  1. Allez dans Préférences, recherchez des plugins.
  2. Tapez "Lombok" dans la boîte de recherche du plugin. Lombok est un plugin non intégré, il ne sera donc pas affiché au début.
  3. Cliquez sur "Parcourir" pour rechercher des plugins non fournis.
  4. Le "plugin Lombok" devrait apparaître. Sélectionnez le.
  5. Cliquez sur le bouton vert "Installer".
  6. Cliquez sur le bouton "Redémarrer Intellij IDEA".

Paramètres:

  1. Activer le processeur d'annotation

    • Allez dans Préférences -> Génération, Exécution, Déploiement -> Préférences -> Compilateur -> Processeurs d'annotation
    • Fichier -> Autres paramètres -> Paramètres par défaut -> Compilateur -> Processeurs d'annotation
  2. Vérifier si le plugin Lombok est activé

    • IntelliJ IDEA-> Préférences -> Autres paramètres -> Plugin Lombok -> Activer Lombok
  3. Ajoutez le fichier Lombok dans les bibliothèques globales et les dépendances de projets.

    • Fichier -> Structure du projet -> Bibliothèques globales (Ajouter lombok.jar)
  4. Fichier -> Structure du projet -> Paramètres du projet -> Modules -> Onglet Dépendances = check lombok

  5. Redémarrer Intellij

12
Ashish Khandelwal

Pour moi, le plug-in lombok et le traitement des annotations permettent un besoin, pas d'autre. Pas besoin d'utiliser Eclipse et additionnel - javaagent: lombok.jar options.

  • Idée 14.1.3, build 141.1010
  • Lombok plugin [Préférence-> plugins-> parcourir les référentiels-> rechercher 'lombok' -> installer et redémarrer l'idée.
  • Préférence -> recherche 'annotation' -> entrer dans le processeur d'annotation -> activer le traitement d'annotation.
11
weiheng

IDEA 2016.1:

  • Installer plugin lombok
  • Paramètres -> Compilateur -> Processeurs d'annotation -> Activer le traitement des annotations: coché (configuration par défaut)
  • Paramètres -> Compilateur -> Processeurs d'annotation -> Processeurs d'annotation add "lombok.launch.AnnotationProcessorHider $ AnnotationProcessor"
  • De même, si vous utilisez maven, ajoutez-le à la configuration du plug-in maven-compiler-> annotationProcessors -> annotationProcessor: lombok.launch.AnnotationProcessorHider $ AnnotationProcessor

    <plugin>
      <groupId>org.Apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>${maven.plugin.compiler.version}</version>
      <configuration>
        <compilerVersion>${Java.version}</compilerVersion>
        <source>${Java.version}</source>
        <target>${Java.version}</target>
        <annotationProcessors>
          <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
        </annotationProcessors>
      </configuration>
    </plugin>
    
7
Jan Kubovy

Assurez-vous que ces deux conditions sont remplies:

  1. Activer le traitement des annotations,

    Préférences> Génération, Exécution, Déploiement> Compilateur> Processeurs d'annotation> Activer le traitement des annotations

  2. Le plugin Lombok est installé et activé pour votre projet.

7
Nikhil Katre

Après avoir passé trop de temps à résoudre ce problème, j'ai trouvé une solution simple qui garantit que IntelliJ traite correctement les annotations de Lombok pendant les générations.

Le plugin Gradle-Lombok n'est pas nécessaire pour cette solution de contournement. Votre build.gradle requiert uniquement les éléments suivants:

dependencies {
    compileOnly("org.projectlombok:lombok:1.16.18")
}

La solution de contournement consiste à activer le paramètre IntelliJ suivant:

  1. Ouvrez les préférences/paramètres d’IntelliJ.
  2. Naviguez jusqu'à Build, Execute, Deployment > Build Tools > Gradle > Runner
  3. Cochez la case intitulée Delegate IDE build/run actions to gradle


Avantages de cette solution de contournement par rapport aux autres solutions proposées sur cette page:

  • Aucun traitement d'annotation nécessaire!
  • Capable d'utiliser le compilateur Java de votre choix (aucun compilateur Eclipse nécessaire)
  • Aucune utilisation du plugin buggy gradle-lombok (bien que quelqu'un d'autre puisse peut-être résoudre ce problème)
  • Aucune VM options nécessaires
  • Aucun chemin codé en dur vers le pot de lombok

Un inconvénient est qu'IntelliJ n'utilisera plus son propre programme de test. Au lieu de cela, les tests sont toujours exécutés dans Gradle.

7
SonnevilleJ

Aucune des réponses avancées à cette question n'a résolu le problème pour moi.

J'ai réussi à résoudre le problème en ajoutant une dépendance à lombok dans le fichier pom.xml, c'est-à-dire:

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

J'utilise IntelliJ 2016.3.14 avec maven-3.3.9

J'espère que ma réponse vous sera utile

6
Sahli Ayoub

Sur Itellij 15 CE, il suffit d'installer Lombok Plugin (aucune configuration supplémentaire requise).

3
kecso

J'ai suivi cette procédure pour éviter une erreur similaire/identique.

idée MVN: propre

mVN idée: idée

Après cela, je pourrais construire à partir de la IDE intellij et de la ligne de commande.

2
ngonidzashe

Je ne parviens pas à faire fonctionner cela avec le compilateur javac et j'obtiens la même erreur.

Erreur: (9, 14) Java: le paquet lombok n'existe pas.

J'ai activé le processeur d'annotation, et j'ai également essayé de reconstruire le projet, invalider le cache/redémarrer. N'aide pas.

Cependant, je l’ai fait fonctionner partiellement avec le compilateur Eclipse. Je dis partielle parce que, bien que la construction passe avec succès, l'éditeur se plaint toujours de "Impossible de résoudre le symbole".

Idea - 15.04 community edition Lombok - 1.16.6 plugin Lombok ( https://github.com/mplushnikov/lombok-intellij-plugin ) - 0.9.8 JDK - 1.8.0_51

Mise à jour: Ok, j'ai finalement réussi à faire fonctionner ça. Le mien était un projet de classe et Lombok était configuré comme une configuration "fournie" personnalisée. A bien fonctionné après avoir ajouté ceci dans build.gradle

idea {
 module {
     scopes.PROVIDED.plus += [configurations.provided]
    }
}

Donc, 3 étapes

  1. Installer le plugin Lombok à partir de Fichier-> Paramètres-> Plugins
  2. Activer le processeur d'annotation (le compilateur javac fonctionne également)
  3. Assurez-vous que build.gradle ou pom.xml est mis à jour si vous ajoutez lombok en tant que configuration personnalisée.
1
robbin