Migrazione da kapt a KSP

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:

  1. Controlla le librerie che utilizzi per il supporto dei principali punti di forza
  2. Aggiungi il plug-in dei punti di forza principali al tuo progetto
  3. Sostituisci i processori di annotazioni con KSP
  4. 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