web-dev-qa-db-ja.com

LombokをKotlinで使用することはできますか?

Kotlin Gradleプロジェクトがあります。 Lombokを依存関係として追加し、kaptで登録しました

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

自動log生成に@Slf4jアノテーションのみを使用したいと思います。 Javaクラスに対しては機能しますが、Kotlinクラスに対しては機能しません。

KotlingとLombokを一緒に使用することは今でも可能ですか?

編集:詳細を追加する

Kotlinクラスに@Slf4jアノテーションを付け、その中にlogを使用すると、

未解決の参照:ログ

明らかに注釈処理は適用されません。

20
dev-null

Lombokはソースコードではなく、ASTで実行されます。とにかく、これはJavaコンパイラーによってコンパイル時に実行される注釈プロセッサーです。Kotlinコンパイラーはこれらの注釈プロセッサーを使用しません。回答も参照してください。 https:// stackoverflow.com/a/35530223/2621917 馬の口からまっすぐ。

6
Michael Piefel

注釈@Slf4jは使用できませんが、必要なクラスでそのオブジェクトを手動で作成します。

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

1
Sahil Chhabra

それはサポートされていません、そして、ものの見た目によって、 それはそうではありません

1
Michael

Lombokを使用するのが@ Slf4jのみの場合、代わりにkotlin-loggingを使用することをお勧めします。 https://github.com/MicroUtils/kotlin-logging

0
YetAnotherMatt