KSP İşlemcilerini Gradle Derlemesine Entegre Etme
Gradle'da KSP'yi yapılandırın, oluşturulan kaynakları ekleyin ve işlemci çıktısında hata ayıklayın.
KSP İşlemcilerini Gradle Derlemesine Entegre Etme, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
Çok Modüllü Yapı
Tipik bir KSP kurulumu en az iki modüle sahiptir: :annotation (ek açıklama sınıflarınızı içerir) ve :processor (SymbolProcessor içerir). Tüketici modülü KSP eklentisini uygular ve ksp ile implementation bağımlılıklarını bildirir.
KSP Eklentisini Uygulama
Tüketici modülünüzün build.gradle.kts dosyasında:
plugins {
kotlin("jvm") // or android, multiplatform
id("com.google.devtools.ksp") version "2.0.0-1.0.21"
}ksp Bağımlılığını Bildirme
Bir KSP işlemcisi eklemek için implementation yerine ksp yapılandırmasını kullanın. İşlemci yalnızca derleme zamanında çalışır ve son ürüne dahil edilmez:
dependencies {
implementation(project(":annotation"))
ksp(project(":processor"))
}Oluşturulan Kaynak Dizinleri
KSP, oluşturulan dosyaları build/generated/ksp/<sourceSet>/kotlin/ altına yazar. KSP eklentisi bu dizinleri Kotlin kaynak kümesine otomatik olarak ekler; böylece manuel yapılandırma olmadan oluşturulan sınıflar kodunuz tarafından görülebilir.
İşlemciye Seçenek Aktarma
Derleme zamanı seçeneklerini Gradle'dan işlemcinize ksp { arg("key", "value") } aracılığıyla aktarın. Bunları işlemcide environment.options["key"] üzerinden okuyun:
// build.gradle.kts (consumer)
ksp {
arg("generateMocks", "true")
arg("outputPackage", "com.example.generated")
}İşlemcide Seçenekleri Okuma
SymbolProcessorProvider.create() yönteminde seçeneklere ortam üzerinden erişin:
class MyProcessorProvider : SymbolProcessorProvider {
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
val genMocks = environment.options["generateMocks"] == "true"
return MyProcessor(environment.codeGenerator, environment.logger, genMocks)
}
}Artımlı Derlemeler
KSP, girdi-çıktı bağımlılıklarını izler. codeGenerator.createNewFile() çağrılırken her oluşturulan dosyayı kaynak simgeleriyle ilişkilendirin. Böylece KSP, izlenen girdilerin hiçbiri değişmediğinde yeniden işlemeyi atlar.
val deps = Dependencies(aggregating = false, *symbols.map { it.containingFile!! }.toTypedArray())
codeGenerator.createNewFile(deps, packageName, fileName)Android ile KSP
Android projelerinde hem eklenti hem de bağımlılık bildirimlerinde kapt yerine ksp kullanın. İşlemci davranışının derleme türlerine göre farklı olması gerekiyorsa kspDebug veya kspRelease gibi varyant duyarlı yapılandırmaları kullanın.
Kotlin Çok Platformlu ile KSP
Bir KMP projesinde KSP eklentisini uygulayın ve işlemcinizin desteklediği hedeflere bağlı olarak add(kotlinCompilation.defaultSourceSetName + "ksp", project(":processor")) ya da kspCommonMainMetadata, kspJvmMain gibi kısa gösterimleri kullanın.
Oluşturulan Dosyaları Görüntüleme
./gradlew build (Android için kspKotlin / kspDebugKotlin) çalıştırdıktan sonra build/generated/ksp/ dizinini inceleyin. IntelliJ ve Android Studio bu klasörleri oluşturulan kaynaklar olarak işaretler ve kullanımlardan oluşturulan bildirimlere gitmenize olanak tanır.
İşlemcide Hata Ayıklama
Gradle görevini --debug ile çalıştırın veya ek açıklama işleme JVM'sine uzak bir hata ayıklayıcı bağlamak için ksp yapılandırmasına jvmArgs("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005") ekleyin.
Hızlı Kontrol
Derleme zamanında çalışan ancak çalışma zamanı sınıf yoluna dahil edilmeyen bir KSP işlemcisini eklemek için hangi Gradle yapılandırması kullanılır?
Özet: KSP'yi Gradle Derlemesine Entegre Etme
Önemli çıkarımlar:
com.google.devtools.kspeklentisini uygulayın; işlemciyiksp()bağımlılığıyla ekleyin- Oluşturulan kaynaklar
build/generated/ksp/dizinine gelir ve kaynak kümesine otomatik olarak eklenir - Seçenekleri Gradle'dan
ksp { arg() }aracılığıyla aktarın; bunlarıenvironment.optionsüzerinden okuyun - Doğru artımlı yeniden derlemeler için
createNewFile()ileDependencieskullanın - Android (varyant yapılandırmaları) ve Kotlin Çok Platformlu ile çalışır
Yapay zeka eğitmeniyle Kotlin öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 51
- Dersler
- 203
Sıkça Sorulan Sorular
“KSP İşlemcilerini Gradle Derlemesine Entegre Etme” dersi ücretsiz mi?
Evet — “KSP İşlemcilerini Gradle Derlemesine Entegre Etme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“KSP İşlemcilerini Gradle Derlemesine Entegre Etme” dersinde ne öğreneceğim?
Gradle'da KSP'yi yapılandırın, oluşturulan kaynakları ekleyin ve işlemci çıktısında hata ayıklayın. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“KSP İşlemcilerini Gradle Derlemesine Entegre Etme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- KSP ve KAPT: KSP Neden Daha Hızlıdır
- İlk SymbolProcessor'ınızı Yazma
- KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma
- KSP İşlemcilerini Gradle Derlemesine Entegre Etme