Kapt (Kotlin 註解處理工具) 可讓您 使用 Kotlin 程式碼的 Java 註解處理工具 且特別支援 Kotlin。方法是從 處理器可讀取的 Kotlin 檔案。產生這類虛設常式 並會大幅影響建構速度。
KSP (Kotlin Symbol Processing) 是以 Kotlin 優先的替代方案, kapt。可直接分析 Kotlin 程式碼,大小最高可達 2 倍 速度更快。此外,該平台也更瞭解 Kotlin 的 這個概念
Kapt 目前處於維護模式,建議您從 kapt 遷移至 KSP 。在大多數情況下,您只需要變更 授予專案建構設定
您可以在專案階段 並能依模組和程式庫完成遷移作業。
以下是遷移步驟總覽:
- 確認您使用的程式庫是否支援 KSP
- 在專案中新增 KSP 外掛程式
- 使用 KSP 取代註解處理工具
- 移除 kapt 外掛程式
確認您使用的程式庫是否支援 KSP
首先,請確認您目前搭配 kapt 使用的程式庫是否已有 KSP 聯絡。許多熱門程式庫 (包括 Dagger、Glide、Room 和 Moshi) 以及其他服務對現狀的支援,
您可以查看支援的資料庫清單,前往 文件,或參閱程式庫的說明文件和 Issue Tracker 您使用的資源
在專案中新增 KSP 外掛程式
首先,請在頂層 build.gradle.kts
檔案中宣告 KSP 外掛程式。
確認所選 KSP 版本與專案的 Kotlin 一致
版本。您可以在 KSP GitHub 查看版本清單
頁面。
Kotlin
plugins { id("com.google.devtools.ksp") version "1.8.10-1.0.9" apply false }
Groovy
plugins { id 'com.google.devtools.ksp' version '1.8.10-1.0.9' apply false }
接著,在模組層級 build.gradle.kts
檔案中啟用 KSP:
Kotlin
plugins { id("com.google.devtools.ksp") }
Groovy
plugins { id 'com.google.devtools.ksp' }
使用 KSP 取代註解處理工具
啟用 KSP 後,您就能開始使用 KSP 取代 kapt。 大部分的程式庫,只要在依附元件中將 kapt 變更為 ksp 即可 將他們的註解處理工具和 KSP 處理工具運送至 物件
Kotlin
dependencies {kapt("androidx.room:room-compiler:2.5.0")ksp("androidx.room:room-compiler:2.5.0") }
Groovy
dependencies {kapt 'androidx.room:room-compiler:2.5.0'ksp 'androidx.room:room-compiler:2.5.0' }
遷移至 KSP 後,請同步處理並建構專案,確認專案是否仍可正常運作 正確。
以下是幾個需要留意的常見問題:
- 某些程式庫針對 kapt 和 KSP 支援的功能並不相同。 如果程式碼在遷移後發生問題,請參閱程式庫的說明文件。
- 與 kapt 相比,KSP 的 Kotlin 類型資訊更加準確 (例如 是否可為空值),這表示 KSP 處理器可能比類型更精準 Google Cloud 就是最佳選擇因此,您可能還需要修正原始碼中的 更新檔。
- 如果您先前透過引數傳遞至註解處理工具, 現在您可能需要將這些引數傳遞至 KSP請注意,廣告格式 kapt 和 KSP 可能有不同的引數請參閱 KSP 說明文件,以及參閱程式庫的說明文件 就會採用該 API
移除 kapt 外掛程式
如果模組中不再包含 kapt
的依附元件,
移除 kapt 外掛程式。
如果您是在 plugins 區塊中宣告 kapt 外掛程式:
Kotlin
plugins {id("org.jetbrains.kotlin.kapt")}
Groovy
plugins {id 'org.jetbrains.kotlin.kapt'}
如果 kapt 外掛程式使用 Groovy 使用 apply plugin 語法:
apply plugin: 'kotlin-kapt'
您也必須移除與 kapt 相關的所有其他設定,例如:
Kotlin
kapt { correctErrorTypes = true useBuildCache = true }
Groovy
kapt { correctErrorTypes true useBuildCache true }