kapt から KSP への移行
このガイドでは、Kotlin の機能を最大限に活用し、ビルドパフォーマンスを向上させるために、アノテーションプロセッサを kapt から KSP に移行する方法を学びます。
kapt (Kotlin Annotation Processing Tool) は、Java のアノテーションプロセッサを Kotlin で使用できるようにする便利なツールです。これは Kotlin のソースコードを Java の「スタブ」に変換し、そのスタブに対してアノテーションプロセッサを実行することで動作します。しかし、このプロセスは負荷が高く、ビルド時間を大幅に増加させるだけでなく、変換の過程で Kotlin 固有の一部の機能が失われてしまいます。
対照的に、KSP (Kotlin Symbol Processing) は、Kotlin 専用に設計された kapt の代替手段です。KSP はすべての Kotlin 機能を理解し、ソースコードを直接解析するため、ビルド時間を短縮できます。
開始する前に、プロジェクトで使用しているプロセッサが KSP をサポートしているか確認してください。サポートされているライブラリのリストを参照するか、各ライブラリのドキュメントを確認してください。
KSP と kapt は並行して実行できるため、ライブラリやモジュールごとに段階的にプロジェクトを移行できます。
プロジェクトに KSP プラグインを追加する
プロジェクトレベルの build.gradle(.kts) ファイルの plugins {} ブロックに KSP を追加します。
plugins {
id("com.google.devtools.ksp") version "2.3.3" apply false
}plugins {
id 'com.google.devtools.ksp' version '2.3.3' apply false
}KSP の最新バージョンを確認するには、GitHub の Releases を確認してください。
プロセッサを更新する
移行したいプロセッサを使用しているモジュールを見つけます。そのモジュールの build.gradle(.kts) ファイルで以下のように行います。
plugins {}ブロックに KSP を追加します。kotlinplugins { id("com.google.devtools.ksp") }groovyplugins { id 'com.google.devtools.ksp' }dependencies {}ブロックで、kaptをkspに置き換えます。kotlindependencies { implementation("com.google.dagger:dagger:2.48") // kapt("com.google.dagger:dagger-compiler:2.48") // KSP プロセッサの依存関係: ksp("com.google.dagger:dagger-compiler:2.48") }groovydependencies { implementation 'com.google.dagger:dagger:2.48' // kapt 'com.google.dagger:dagger-compiler:2.48' // KSP プロセッサの依存関係: ksp 'com.google.dagger:dagger-compiler:2.48' }
ほとんどのライブラリでは、この置き換えだけで十分です。追加の変更が必要かどうかについては、各ライブラリのドキュメントを確認してください。
kapt プラグインを削除する
すべてのプロセッサを KSP に移行した後、すべてのビルドファイルから kapt プラグインを安全に削除できます。
plugins {
// この行を削除:
id("org.jetbrains.kotlin.kapt")
}plugins {
// この行を削除:
id 'org.jetbrains.kotlin.kapt'
}残っている kapt の設定があれば削除してください。
