نقل البيانات من kapt إلى KSP

تتيح لك Kapt (أداة معالجة التعليقات التوضيحية في Kotlin) استخدام معالجات تعليقات Java التوضيحية التي تستخدم رمز Kotlin، حتى إذا لم تكن هذه المعالجات متوفرة الخاصة بـ Kotlin. ويتم ذلك عن طريق إنشاء كعبات Java من ملفات Kotlin التي يمكن للمعالجات قراءتها بعد ذلك. يعد هذا الجيل البذور عمليات باهظة الثمن ولها تأثير كبير في سرعة الإصدار.

إنّ KSP (معالجة رموز Kotlin) هو بديل يعتمد على لغة Kotlin أولاً. كابت ويحلّل برنامج KSP رمز Kotlin مباشرةً، وهو ما يؤدي إلى زيادة بمعدل الضعف بشكل أسرع كما يمتلك فهمًا أفضل للغة Kotlin التركيبات اللغوية.

يتوفر Kapt الآن وضع الصيانة، وننصح بالنقل من kapt إلى KSP. كلما أمكن ذلك. في معظم الحالات، لا تتطلب عملية نقل البيانات هذه سوى إجراء تغييرات على تهيئة إنشاء المشروع.

بإمكانك تشغيل kapt وKSP جنبًا إلى جنب في مشروعك أثناء ويمكن إجراء الترحيل وحدة تلو الأخرى، ومكتبة حسب المكتبة.

في ما يلي نظرة عامة على خطوات نقل البيانات:

  1. التحقّق من المكتبات التي تستخدمها للحصول على دعم KSP
  2. إضافة المكوّن الإضافي KSP إلى مشروعك
  3. استبدال معالجات التعليقات التوضيحية بـ KSP
  4. إزالة المكوّن الإضافي kapt

التحقّق من المكتبات التي تستخدمها للحصول على دعم KSP

للبدء، تحقق مما إذا كانت المكتبات التي تستخدمها مع kapt تحتوي بالفعل على KSP والدعم. وينطبق هذا الأمر على العديد من المكتبات الشائعة (بما في ذلك Dagger، Glide، وغرفة وMoshi) وآخرون يقدّمون الدعم

يمكنك الاطّلاع على قائمة المكتبات المتوافقة في الوثائق، أو الرجوع إلى الوثائق وتعقب مشكلات المكتبات التي تستخدمها.

إضافة المكوّن الإضافي KSP إلى مشروعك

أولاً، يُرجى تعريف المكوِّن الإضافي KSP في ملف build.gradle.kts ذي المستوى الأعلى. احرص على اختيار إصدار KSP متوافق مع لغة Kotlin الخاصة بمشروعك. . يمكنك العثور على قائمة بالإصدارات على KSP GitHub .

Kotlin

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

Groovy

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

بعد ذلك، يمكنك تفعيل KSP في ملف build.gradle.kts على مستوى الوحدة:

Kotlin

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

Groovy

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

استبدال معالجات التعليقات التوضيحية بـ KSP

عند تفعيل برنامج KSP، يمكنك البدء في استبدال استخدامات Kapt ببروتوكول KSP. للحصول على نموذج لمعظم المكتبات، فإن هذا يتطلب فقط تغيير kapt إلى ksp عند الاعتمادية حيث يشحنون معالج التعليقات التوضيحية ومعالج KSP في نفس الأداة.

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، يمكنك مزامنة مشروعك وإنشاؤه لمعرفة ما إذا كان لا يزال يعمل. بشكل صحيح.

بعض المشاكل الشائعة التي يجب الانتباه إليها:

  • لا توفّر بعض المكتبات مجموعة الميزات نفسها مع كل من kapt وKSP. إذا تعطل الرمز بعد نقل البيانات، راجِع مستندات المكتبة.
  • لدى KSP معلومات أكثر دقة من نوع Kotlin مقارنةً بـ kapt (على سبيل المثال، حول بقابلية القيم الفارغة)، مما يعني أن معالِجات KSP يمكن أن تكون أكثر دقة في ما يتعلق بالكتابة متطلبات المشروع. قد يتطلب ذلك أيضًا بعض الإصلاحات في رمز المصدر، وذلك في بالإضافة إلى تحديث ملفات الإصدار.
  • إذا كنت تُمرر الوسيطات في السابق إلى معالج التعليقات التوضيحية، فستحتاج على الأرجح إلى تمرير هذه الوسيطات إلى KSP الآن. لاحظ أن التنسيق قد تختلف الوسيطات بين kapt وKSP. اطّلِع على KSP المستندات والرجوع إلى مستندات المكتبة التي تستخدمها لمعرفة المزيد.

إزالة المكوّن الإضافي kapt

في حال عدم تضمين أي تبعيات مع kapt في الوحدة بعد الآن، لإزالة المكون الإضافي kapt.

في حال تعريفه في كتلة مكونات إضافية:

Kotlin

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

Groovy

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

إذا كان يتم استخدام بناء جملة المكوِّن الإضافي application باستخدام Groovy:

apply plugin: 'kotlin-kapt'

عليك أيضًا إزالة أي إعدادات متبقية متعلّقة بالأداة kapt، مثل:

Kotlin

kapt {
    correctErrorTypes = true
    useBuildCache = true
}

Groovy

kapt {
    correctErrorTypes true
    useBuildCache true
}

مصادر إضافية