⚠️ このリポジトリはアーカイブされています。アノテーション処理のセットアップをKSPに移行することを検討してください。 ⚠️
NAPT
これは何ですか?
スタブ生成をスキップすることで最大50%高速に動作するKAPTの代替手段
使用法
この特定のツールセットを実行するにはJDK 9以降が必要です
適用すると、Kotlinコード内で生成されたコードを参照できなくなるため、
KotlinソースでJava生成コードを参照するにはJavaのbridgeクラスを書く必要があります。
例えば、以下のようなKotlinのDagger 2コンポーネントがあるとします:
`` Kotlin
@Component
interface Component {
@Component.Factory interface Factory {
fun create(): Component } }
Java class ComponentBridge {次に、生成されたコンポーネントをKotlinコードから参照するために、次のようなJavaのブリッジを書く必要があります:
static Component.Factory factory() { return DaggerComponent.factory(); } }
Gradle plugins { kotlin("kapt") }これで、Kotlinコードのどこからでも簡単にこのbridgeを参照できるようになりました。サンプル
使用例は sample にあります。
ダウンロード
#### プラグインの追加
- javac プラグインは Maven Central を通じて配布されています。
- Gradle プラグインは Gradle Plugin Portal を通じて配布されています。
古いものを削除してください。
そしてそれを置き換えます
Gradle
plugins {
id("com.sergei-lapin.napt") version("{latest-version}")
}
それから、あなたのすべてを置き換えることができます。
Gradle
dependencies {
kapt("some dependency")
}
とともに Gradle
dependencies {
annotationProcessor("some dependency")
}
以上です。注釈処理の速度が約50%向上するのをお楽しみください。#### 競合する NaptTrigger クラス
デフォルトでは、Gradle プラグインはモジュール名のパッケージで NaptTrigger を生成するため、FQ 名が衝突することはありませんが、念のため、NaptTrigger パッケージのプレフィックスは次のように指定できます:
Gradle
napt {
naptTriggerPackagePrefix.set("com.slapin.napt")
}
Java package com.slapin.napt.sample; class NaptTrigger { }モジュール名がsampleであると仮定すると、以下のNaptTrigger.javaが生成されます:
Gradle napt { generateNaptTrigger.set(false) }#### NaptTrigger生成の無効化NaptTrigger.javaの生成は(例えばモジュールにすでにJavaソースがある場合など)対応するプロパティをfalseに設定することで無効化できます:
Gradle napt { forkJvmArgs.set(listOf("your_custom_arg")) }#### JavaコンパイラにカスタムJVM引数を渡す方法com.slapin.napt.JvmArgsStrongEncapsulationnaptが動作するためには、Javaのコンパイルが
で定義された引数を使ってフォークされたプロセスで実行されます。 これらの引数は、napt拡張の対応するプロパティを設定することで拡張可能です。
Gradle napt { additionalSourceSetsForTriggerGeneration.set(listOf("test")) } ``#### 追加のソースセット内でNaptTriggerを生成するtest場合によっては、追加のソースセット(例:
)でアノテーション処理をトリガーする必要があります。 そのような場合は、napt拡張の対応するプロパティを使用できます:
--- Tranlated By Open Ai Tx | Last indexed: 2026-01-12 ---