web-dev-qa-db-fra.com

Gradle désapprouvé les avertissements du processeur d'annotation pour Lombok

Après la mise à niveau vers Gradle 4.7, ma version précédente, sans avertissement, émet maintenant cet avertissement:

Les processeurs d'annotation suivants ont été détectés sur le chemin de classe de compilation: 'lombok.launch.AnnotationProcessorHider $ AnnotationProcessor' et 'lombok.launch.AnnotationProcessorHider $ ClaimingProcessor'. La détection des processeurs d'annotation sur le chemin de classe de compilation est déconseillée et Gradle 5.0 les ignorera. Ajoutez-les plutôt au chemin du processeur d'annotation. Si vous n'aviez pas l'intention d'utiliser les processeurs d'annotation, vous pouvez utiliser l'argument du compilateur '-proc: none' pour les ignorer.

Il semble que les processeurs d'annotation soient obsolètes et gradle version 5.0 ne les supportera pas.

Mon projet utilise lombok, qui nécessite des processeurs d'annotation, donc -proc:none n'est pas une option. Ni arrêter d'utiliser Gradle lorsque verison 5.0 est publié.

Comment puis-je:

  • arrêtez les avertissements, et
  • est-ce que mon projet continuera à se construire avec les prochaines versions de Gradle?
19
Bohemian

Changez le type de dépendance de lombok de compile en annotationProcessor, ainsi votre section de dépendances dans votre build.gradle fichier devrait ressembler à:

dependencies {
    compileOnly('org.projectlombok:lombok:1.16.20')
    annotationProcessor 'org.projectlombok:lombok:1.16.20'
    // compile 'org.projectlombok:lombok:1.16.20' <-- this no longer works!
    // other dependencies...
}
31
Bohemian

Si votre projet contient des tests, vous aurez besoin de la configuration suivante pour vous débarrasser complètement de l'avertissement de gradle:

dependencies {
  compileOnly "org.projectlombok:lombok:1.18.2"
  testCompileOnly "org.projectlombok:lombok:1.18.2"
  annotationProcessor "org.projectlombok:lombok:1.18.2"
  testAnnotationProcessor "org.projectlombok:lombok:1.18.2"
}

Ajustez la version de lombok en fonction.

25
Andy Brown

Gradle a ajouté annotationProcessor en 4.6 et Lombok est un processeur d'annotation même si leur documentation n'est pas très claire à ce sujet lors de l'utilisation de Gradle, ils en sont également conscients, car ils le recommandent lors de l'utilisation de Android Studio . Si courte réponse est d'utiliser:

dependencies {
    compileOnly('org.projectlombok:lombok:1.18.0')
    annotationProcessor('org.projectlombok:lombok:1.18.0')
}
6
TecHunter