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ış:
- KSP desteği için kullandığınız kitaplıkları kontrol edin
- KSP eklentisini projenize ekleyin
- Ek açıklama işlemcilerini KSP ile değiştirme
- 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 }