kapt থেকে KSP তে স্থানান্তর করুন

Kapt (কোটলিন অ্যানোটেশন প্রসেসিং টুল) আপনাকে কোটলিন কোড সহ জাভা অ্যানোটেশন প্রসেসর ব্যবহার করতে দেয়, এমনকি যদি সেই প্রসেসরগুলিতে কোটলিনের জন্য নির্দিষ্ট সমর্থন না থাকে। এটি আপনার কোটলিন ফাইলগুলি থেকে জাভা স্টাব তৈরি করে করা হয় যা প্রসেসরগুলি পড়তে পারে। এই স্টাব জেনারেশন একটি ব্যয়বহুল অপারেশন এবং বিল্ড গতির উপর উল্লেখযোগ্য প্রভাব ফেলে।

KSP (Kotlin Symbol Processing) হল kapt-এর একটি Kotlin-প্রথম বিকল্প। KSP সরাসরি Kotlin কোড বিশ্লেষণ করে, যা 2x পর্যন্ত দ্রুত । এটি Kotlin ভাষার গঠন সম্পর্কে আরও ভাল ধারণা রাখে।

মাইগ্রেশনের সময় আপনি আপনার প্রোজেক্টে kapt এবং KSP একসাথে চালাতে পারেন, এবং মাইগ্রেশনটি মডিউল অনুসারে, লাইব্রেরি অনুসারে করা যেতে পারে।

এখানে মাইগ্রেশনের ধাপগুলির একটি সংক্ষিপ্ত বিবরণ দেওয়া হল:

  1. KSP সাপোর্টের জন্য আপনি যে লাইব্রেরিগুলি ব্যবহার করেন তা পরীক্ষা করুন।
  2. আপনার প্রকল্পে KSP প্লাগইন যোগ করুন
  3. KSP দিয়ে অ্যানোটেশন প্রসেসর প্রতিস্থাপন করুন
  4. kapt প্লাগইনটি সরান

KSP সাপোর্টের জন্য আপনি যে লাইব্রেরিগুলি ব্যবহার করেন তা পরীক্ষা করুন।

শুরু করার জন্য, kapt-এর সাথে আপনি যে লাইব্রেরিগুলি ব্যবহার করছেন সেগুলিতে ইতিমধ্যেই KSP সাপোর্ট আছে কিনা তা পরীক্ষা করে দেখুন। এটি অনেক জনপ্রিয় লাইব্রেরির ক্ষেত্রে ( Dagger , Glide , Room এবং Moshi সহ) প্রযোজ্য, এবং অন্যান্যরাও সাপোর্ট যোগ করছে।

আপনি ডকুমেন্টেশনে সমর্থিত লাইব্রেরির তালিকা পরীক্ষা করতে পারেন, অথবা আপনার ব্যবহৃত লাইব্রেরির ডকুমেন্টেশন এবং ইস্যু ট্র্যাকার দেখতে পারেন।

আপনার প্রকল্পে KSP প্লাগইন যোগ করুন

প্রথমে, আপনার শীর্ষ স্তরের build.gradle.kts ফাইলে KSP প্লাগইনটি ঘোষণা করুন। আপনি KSP GitHub পৃষ্ঠায় রিলিজের একটি তালিকা পেতে পারেন।

কোটলিন

plugins {
    id("com.google.devtools.ksp") version "2.3.4" apply false
}

খাঁজকাটা

plugins {
    id 'com.google.devtools.ksp' version '2.3.4' apply false
}

তারপর, আপনার মডিউল-স্তরের build.gradle.kts ফাইলে KSP সক্রিয় করুন:

কোটলিন

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

খাঁজকাটা

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

KSP দিয়ে অ্যানোটেশন প্রসেসর প্রতিস্থাপন করুন

KSP সক্ষম হলে, আপনি kapt-এর ব্যবহার KSP দিয়ে প্রতিস্থাপন করতে শুরু করতে পারেন। বেশিরভাগ লাইব্রেরির জন্য, নির্ভরতা ঘোষণায় kapt-কে ksp-এ পরিবর্তন করতে হবে, কারণ তারা তাদের অ্যানোটেশন প্রসেসর এবং KSP প্রসেসর একই আর্টিফ্যাক্টে পাঠায়।

কোটলিন

dependencies {
    kapt("androidx.room:room-compiler:2.5.0")
    ksp("androidx.room:room-compiler:2.5.0")
}

খাঁজকাটা

dependencies {
    kapt 'androidx.room:room-compiler:2.5.0'
    ksp 'androidx.room:room-compiler:2.5.0'
}

KSP-তে যাওয়ার পর, আপনার প্রকল্পটি সিঙ্ক করুন এবং তৈরি করুন যাতে দেখা যায় এটি এখনও সঠিকভাবে কাজ করে কিনা।

কিছু সাধারণ সমস্যা যা লক্ষ্য রাখা উচিত:

  • কিছু লাইব্রেরি kapt এবং KSP-এর সাথে একই বৈশিষ্ট্যের সেট সমর্থন করে না। যদি আপনার কোডটি মাইগ্রেট করার পরে ভেঙে যায়, তাহলে লাইব্রেরির ডকুমেন্টেশন পরীক্ষা করুন।
  • KSP-তে kapt-এর তুলনায় Kotlin টাইপের তথ্য বেশি সঠিক (যেমন, nullability সম্পর্কে), যার অর্থ হল KSP প্রসেসরগুলি টাইপের প্রয়োজনীয়তা সম্পর্কে আরও সুনির্দিষ্ট হতে পারে। এর জন্য আপনার বিল্ড ফাইল আপডেট করার পাশাপাশি আপনার সোর্স কোডেও কিছু সংশোধনের প্রয়োজন হতে পারে।
  • যদি আপনি আগে অ্যানোটেশন প্রসেসরে আর্গুমেন্টগুলি পাস করতেন, তাহলে সম্ভবত এখন আপনাকে সেই আর্গুমেন্টগুলি KSP-তে পাস করতে হবে। মনে রাখবেন যে kapt এবং KSP-এর মধ্যে আর্গুমেন্টগুলির ফর্ম্যাট আলাদা হতে পারে। KSP ডকুমেন্টেশন দেখুন এবং আরও জানতে আপনি যে লাইব্রেরিটি ব্যবহার করছেন তার ডকুমেন্টেশন দেখুন।

kapt প্লাগইনটি সরান

যখন আপনার মডিউলে kapt সাথে আর কোনও নির্ভরতা অন্তর্ভুক্ত না থাকে, তখন kapt প্লাগইনটি সরিয়ে ফেলুন।

যদি এটি একটি প্লাগইন ব্লকে ঘোষিত হয়:

কোটলিন

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

খাঁজকাটা

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

যদি এটি Groovy ব্যবহার করে apply plugin সিনট্যাক্স ব্যবহার করত:

apply plugin: 'kotlin-kapt'

আপনার kapt সম্পর্কিত যেকোন অবশিষ্ট কনফিগারেশনও সরিয়ে ফেলা উচিত, যেমন:

কোটলিন


kapt {
    correctErrorTypes = true
    useBuildCache = true
}

খাঁজকাটা


kapt {
    correctErrorTypes true
    useBuildCache true
}

অতিরিক্ত সম্পদ