Kotlin Academy · Ders

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.

4. ders / 413 adım

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.ksp eklentisini uygulayın; işlemciyi ksp() 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() ile Dependencies kullanın
  • Android (varyant yapılandırmaları) ve Kotlin Çok Platformlu ile çalışır
Başlamak ücretsiz

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

  1. KSP ve KAPT: KSP Neden Daha Hızlıdır
  2. İlk SymbolProcessor'ınızı Yazma
  3. KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma
  4. KSP İşlemcilerini Gradle Derlemesine Entegre Etme
← Kotlin Academy Sayfasına Dön