Kapt (lo strumento di elaborazione delle annotazioni Kotlin) ti consente di usare processori di annotazioni Java con codice Kotlin, anche se non dispongono di assistenza specifica per Kotlin. Questo viene fatto generando stub Java dal tuo File Kotlin che i processori possono leggere. Questa generazione stub è ed è un'operazione costosa. Inoltre, ha un impatto significativo sulla velocità di compilazione.
KSP (Kotlin Symbol Processing) è un'alternativa Kotlin-first alla kapt. KSP analizza direttamente il codice Kotlin, che è fino a 2 volte più velocemente. Inoltre, permette di comprendere meglio costrutti linguistici.
Kapt è ora in modalità di manutenzione. Ti consigliamo di eseguire la migrazione da Kapt a KSP ove possibile. Nella maggior parte dei casi, questa migrazione richiede solo modifiche alle configurazione di compilazione del progetto.
Puoi gestire Kapt e KSP nel progetto mentre migrazione, che può essere eseguita modulo per modulo, libreria per libreria.
Ecco una panoramica dei passaggi della migrazione:
- Controlla le librerie che utilizzi per il supporto dei principali punti di forza
- Aggiungi il plug-in dei punti di forza principali al tuo progetto
- Sostituisci i processori di annotazioni con KSP
- Rimuovi il plug-in Kapt
Controlla le librerie che utilizzi per il supporto dei principali punti di forza
Per iniziare, controlla se le librerie che utilizzi con Kapt dispongono già di KSP assistenza in tempo reale. È il caso di molte librerie popolari (tra cui Dagger, Glide, Stanza, e Moshi) e altri stanno aggiungendo il supporto.
Puoi consultare l'elenco delle librerie supportate nella documentazione o consulta la documentazione e lo strumento di monitoraggio dei problemi delle librerie che stai utilizzando.
Aggiungi il plug-in dei punti di forza principali al tuo progetto
Innanzitutto, dichiara il plug-in KSP nel file build.gradle.kts
di primo livello.
Assicurati di scegliere una versione del punto di forza principali in linea con il Kotlin del tuo progetto
completamente gestita. Puoi trovare un elenco delle release nel KSP GitHub
.
Kotlin
plugins { id("com.google.devtools.ksp") version "1.8.10-1.0.9" apply false }
Alla moda
plugins { id 'com.google.devtools.ksp' version '1.8.10-1.0.9' apply false }
Quindi, abilita i punti di forza principali nel file build.gradle.kts
a livello di modulo:
Kotlin
plugins { id("com.google.devtools.ksp") }
Alla moda
plugins { id 'com.google.devtools.ksp' }
Sostituisci i processori di annotazioni con KSP
Con i punti di forza principali abilitati, puoi iniziare a sostituire gli utilizzi del kapt con i punti di forza principali. Per un vastissimo nella maggior parte delle librerie, questo richiede solo di cambiare kapt in ksp in base dichiarazione, in quanto forniscono il proprio processore di annotazione e processore KSP nella lo stesso artefatto.
Kotlin
dependencies {kapt("androidx.room:room-compiler:2.5.0")ksp("androidx.room:room-compiler:2.5.0") }
Alla moda
dependencies {kapt 'androidx.room:room-compiler:2.5.0'ksp 'androidx.room:room-compiler:2.5.0' }
Dopo il passaggio al punto di forza principale, sincronizza e crea il tuo progetto per vedere se funziona ancora in modo corretto.
Alcuni problemi comuni da tenere in considerazione:
- Alcune librerie non supportano esattamente lo stesso insieme di funzionalità con Kapt e KSP. Se il codice si interrompe dopo la migrazione, controlla la documentazione della libreria.
- Il punto di forza principale ha informazioni sul tipo di Kotlin più accurate di kapt (ad esempio, circa null, il che significa che i processori KSP possono indicare con maggiore precisione il tipo i tuoi requisiti. Ciò potrebbe richiedere alcune correzioni anche nel codice sorgente, oltre ad aggiornare i file di build.
- Se in precedenza passavi argomenti al processore di annotazione, probabilmente dovrai passare questi argomenti al KSP. Tieni presente che il formato degli argomenti potrebbero essere diversi tra kapt e KSP. Consulta i Punti di forza principali documentazione e consultare la documentazione della biblioteca che stai utilizzando per saperne di più.
Rimuovi il plug-in Kapt
Quando non hai più dipendenze incluse in kapt
nel modulo,
rimuovi il plug-in Kapt.
Se è stato dichiarato in un blocco di plug-in:
Kotlin
plugins {id("org.jetbrains.kotlin.kapt")}
Alla moda
plugins {id 'org.jetbrains.kotlin.kapt'}
Se è stata utilizzata la sintassi di applicazione del plug-in con Groovy:
apply plugin: 'kotlin-kapt'
Devi anche rimuovere qualsiasi configurazione rimanente relativa a Kapt, ad esempio:
Kotlin
kapt { correctErrorTypes = true useBuildCache = true }
Alla moda
kapt { correctErrorTypes true useBuildCache true }
Risorse aggiuntive
- Documentazione del punto di forza principale su Kotlinlang.org
- KSP su GitHub
- kapt su Kotlinlang.org -->