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é.
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.
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/
Ce n'est pas supporté et, à ce qu'il paraît, ça ne va pas être .
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