web-dev-qa-db-fra.com

Est-il possible d'utiliser Lombok avec Kotlin?

J'ai un projet Kotlin Gradle. J'ai ajouté Lombok comme dépendance et je l'ai aussi enregistré avec kapt

compileOnly("org.projectlombok:lombok:$lombokVersion")
kapt("org.projectlombok:lombok:$lombokVersion")

Je voudrais simplement utiliser @Slf4j anotation pour la génération automatique log. Cela fonctionne pour les classes Java mais pas pour les classes Kotlin. 

Est-il possible d'utiliser Kotling et Lombok ensemble dès maintenant?

EDIT: Ajout de plus de détails

Si j'annote une classe Kotlin avec @Slf4j et utilise log à l'intérieur, je reçois

Référence non résolue: journal

Evidemment aucun traitement d'annotation n'est appliqué.

12
dev-null

Lombok ne fonctionne pas sur votre code source, mais sur l'AST. Quoi qu'il en soit, il s'agit d'un processeur d'annotation exécuté au moment de la compilation par le compilateur Java. Le compilateur Kotlin n'utilise pas ces processeurs d'annotation. Voir aussi la réponse https://stackoverflow.com/a/35530223/2621917 directement de la bouche du cheval.

5
Michael Piefel

Vous ne pouvez pas utiliser l'annotation @Slf4j, mais créer manuellement son objet dans la classe requise.

Consultez https://www.reddit.com/r/Kotlin/comments/8gbiul/slf4j_loggers_in_3_ways/

1
Sahil Chhabra

Ce n'est pas supporté et, à ce qu'il paraît, ça ne va pas être .

1
Michael

Si tout ce que vous voulez utiliser avec Lombok est @ Slf4j, je vous suggérerais plutôt d'utiliser kotlin-logging: https://github.com/MicroUtils/kotlin-logging

0
YetAnotherMatt