Kapt (Kotlin Ek Açıklama İşleme Aracı), Java ek açıklama işleyicilerini Kotlin koduyla kullanmanıza olanak tanır. Bu işleyiciler Kotlin için özel destek sunmasa bile. Bu işlem, Kotlin dosyalarınızdan işlemcilerin okuyabileceği Java stub'ları oluşturarak yapılır. Bu taslak oluşturma işlemi pahalı bir işlemdir ve derleme hızını önemli ölçüde etkiler.
KSP (Kotlin Simge İşleme), kapt'a öncelik veren bir Kotlin alternatifidir. KSP, Kotlin kodunu doğrudan analiz eder ve bu işlem 2 kata kadar daha hızlıdır. Ayrıca Kotlin dil yapılarını daha iyi anlayabilirsiniz.
Taşıma işlemi sırasında kapt ve KSP'yi projenizde birlikte çalıştırabilirsiniz. Taşıma işlemi, modül modül ve kitaplık kitaplık yapılabilir.
Taşıma adımlarına genel bir bakış:
- KSP desteği için kullandığınız kitaplıkları kontrol edin
- KSP eklentisini projenize ekleme
- Ek açıklama işleyicileri 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 kapt ile kullandığınız kitaplıklarda KSP desteğinin olup olmadığını kontrol edin. Bu durum, birçok popüler kitaplıkta (Dagger, Glide, Room ve Moshi dahil) geçerlidir. Diğer kitaplıklar da bu desteği ekliyor.
Belgelerde desteklenen kitaplıkların listesini kontrol edebilir veya kullandığınız kitaplıkların belgelerine ve sorun izleyicisine bakabilirsiniz.
KSP eklentisini projenize ekleme
Öncelikle, KSP eklentisini üst düzey build.gradle.kts
dosyanızda tanımlayın.
Projenizin Kotlin sürümüne uygun bir KSP sürümü seçtiğinizden emin olun. Sürümlerin listesini KSP GitHub sayfasında bulabilirsiniz.
Kotlin
plugins { id("com.google.devtools.ksp") version "2.0.21-1.0.27" apply false }
Groovy
plugins { id 'com.google.devtools.ksp' version '2.0.21-1.0.27' apply false }
Ardından, modül düzeyindeki build.gradle.kts
dosyanızda KSP'yi etkinleştirin:
Kotlin
plugins { id("com.google.devtools.ksp") }
Groovy
plugins { id 'com.google.devtools.ksp' }
Ek açıklama işleyicileri KSP ile değiştirme
KSP etkinleştirildiğinde kapt kullanımlarını KSP ile değiştirmeye başlayabilirsiniz. Notlandırma işleyicilerini ve KSP işleyicilerini aynı yapıda gönderdikleri için, kitaplıkların büyük bir çoğunluğu için bu işlem, bağımlılık beyanında kapt değerinin ksp olarak değiştirilmesini gerektirir.
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'ye geçtikten sonra, projenizin hâlâ düzgün çalışıp çalışmadığını görmek için senkronize edin ve derleyin.
Dikkat edilmesi gereken yaygın sorunlardan bazıları şunlardır:
- Bazı kitaplıklar, kapt ve KSP ile tam olarak aynı özellik grubunu desteklemez. Taşıma işleminden sonra kodunuz çalışmazsa kitaplığın dokümanlarını kontrol edin.
- KSP, kapt'tan daha doğru Kotlin türü bilgilerine sahiptir (örneğin, boş değer olabilirlik hakkında). Bu, KSP işleyicilerinin tür koşulları hakkında daha hassas olabileceği anlamına gelir. Bu, derleme dosyalarınızı güncellemenin yanı sıra kaynak kodunuzda da bazı düzeltmeler yapılmasını gerektirebilir.
- Daha önce ek açıklama işleyiciye bağımsız değişkenler gönderiyorsanız bu bağımsız değişkenleri artık KSP'ye göndermeniz gerekebilir. Bağımsız değişkenlerin biçiminin kapt ile KSP arasında farklılık gösterebileceğini unutmayın. Daha fazla bilgi edinmek için KSP dokümanlarını ve kullandığınız kitaplığın dokümanlarını inceleyin.
kapt eklentisini kaldırma
Modülünüzde artık kapt
ile birlikte dahil edilmiş bağımlılığınız kalmadığında kapt eklentisini kaldırın.
Bir eklentiler bloğunda bildirildiyse:
Kotlin
plugins {id("org.jetbrains.kotlin.kapt")}
Groovy
plugins {id 'org.jetbrains.kotlin.kapt'}
Groovy kullanarak apply plugin söz dizimini 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 }
Groovy
kapt { correctErrorTypes true useBuildCache true }