Kapt'tan KSP'ye geçiş

Kapt (Kotlin Ek Açıklama İşleme Aracı), Bu işlemciler sahip olmasa bile Kotlin kodlu Java ek açıklama işlemcileri Kotlin için özel destek. Bu, İşlemcilerin daha sonra okuyabileceği Kotlin dosyaları. Bu taslak oluşturma işlevi ve derleme hızı üzerinde önemli bir etkiye sahiptir.

KSP (Kotlin Sembolü İşleme), bir alternatif olarak Kotlin'in ilk kap. KSP, Kotlin kodunu doğrudan analiz eder. Bu, en fazla 2 kat daha hızlı. Ayrıca Kotlin'in çalışma prensibini daha iyi ortaya koyduk.

Kapt şu anda bakım modunda. Kapt'tan KSP'ye geçiş yapmanızı öneririz. Mümkün olduğunca kullanın. Çoğu durumda, bu taşıma işlemi yalnızca derleme yapılandırması.

Projeniz üzerinde çalışırken kapt ve KSP’yi yan yana her modül veya her kitaplık için ayrı ayrı taşıma işlemi gerçekleştirilebilir.

Taşıma adımlarına genel bir bakış:

  1. KSP desteği için kullandığınız kitaplıkları kontrol edin
  2. KSP eklentisini projenize ekleyin
  3. Ek açıklama işlemcilerini KSP ile değiştirme
  4. kapt eklentisini kaldırma

KSP desteği için kullandığınız kitaplıkları kontrol edin

Başlamak için, kullandığınız kitaplıklarda KSP'nin zaten olup olmadığını kontrol edin. destek. Bu durum, birçok popüler kütüphanede (ör. Dagger, Glide, Oda, ve Moshi) ve başka kişiler de destek veriyor.

Desteklenen kitaplıkların listesini şurada kontrol edebilirsiniz: veya kitaplıkların dokümanlarına ve sorun izleyicisine göz atın gösterir.

KSP eklentisini projenize ekleyin

İlk olarak, KSP eklentisini üst düzey build.gradle.kts dosyanızda tanımlayın. Projenizin Kotlin'ine uygun bir KSP sürümü seçtiğinizden emin olun sürümünü değil. Sürümlerin listesini KSP GitHub'da bulabilirsiniz öğrenin.

Kotlin

plugins {
    id("com.google.devtools.ksp") version "1.8.10-1.0.9" apply false
}

Eski

plugins {
    id 'com.google.devtools.ksp' version '1.8.10-1.0.9' apply false
}

Ardından, modül düzeyindeki build.gradle.kts dosyanızda KSP'yi etkinleştirin:

Kotlin

plugins {
    id("com.google.devtools.ksp")
}

Eski

plugins {
    id 'com.google.devtools.ksp'
}

Ek açıklama işlemcilerini KSP ile değiştirme

KSP'yi etkinleştirerek kapt kullanımlarını KSP ile değiştirmeye başlayabilirsiniz. Geniş Bu işlem, bağımlılık düzeyinde kapt'ın ksp olarak değiştirilmesini gerektirir. ek açıklama işlemcilerini ve KSP işlemcilerini ortaya çıkarmanıza yardımcı olabilir.

Kotlin

dependencies {
    kapt("androidx.room:room-compiler:2.5.0")
    ksp("androidx.room:room-compiler:2.5.0")
}

Eski

dependencies {
    kapt 'androidx.room:room-compiler:2.5.0'
    ksp 'androidx.room:room-compiler:2.5.0'
}

KSP'ye geçtikten sonra hâlâ çalışıp çalışmadığını görmek için projenizi senkronize edin ve derleyin sağlayabilir.

Dikkat etmeniz gereken bazı yaygın sorunlar şunlardır:

  • Bazı kitaplıklar, kapt ve KSP ile tam olarak aynı özellik grubunu desteklemez. Kodunuz taşıma işleminden sonra bozulursa kitaplık belgelerine göz atın.
  • KSP, kapt'tan daha doğru Kotlin türü bilgisine sahiptir (örneğin, null bulunabilirliği), yani KSP işlemcilerinin tür hakkında daha hassas olabileceği anlamına gelir. gereksinimlerini karşılayın. Bunun için kaynak kodunuzda da ve derleme dosyalarınızı güncellemenize ek olarak.
  • Önceden bağımsız değişkenleri ek açıklama işlemcisine iletiyorsanız muhtemelen bu bağımsız değişkenleri şimdi KSP'ye iletmeniz gerekecektir. Biçim kapt ve KSP arasında farklılık gösterebilir. KSP'ye göz atın dokümanlarına göz atın ve kütüphanenin belgelerine bakın açıklamadır.

kapt eklentisini kaldırma

Modülünüzde kapt öğesine dahil edilen hiçbir bağımlılığınız kalmadığında kapt eklentisini kaldırın.

Bir eklenti bloğunda tanımlanmışsa:

Kotlin

plugins {
    id("org.jetbrains.kotlin.kapt")
}

Eski

plugins {
    id 'org.jetbrains.kotlin.kapt'
}

Groovy kullanarak eklenti söz dizimi kullanıyorsa:

apply plugin: 'kotlin-kapt'

Ayrıca, kapt ile ilgili kalan yapılandırmaları da kaldırmanız gerekir. Örneğin:

Kotlin

kapt {
    correctErrorTypes = true
    useBuildCache = true
}

Eski

kapt {
    correctErrorTypes true
    useBuildCache true
}

Ek kaynaklar