0Pricing
Kotlin Academy · درس

المهام المخصصة

أتمتوا العمل

المهام المخصصة درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ما مهمة Gradle؟

المهمة هي وحدة من عمل البناء — مثل التجميع أو نسخ الملفات أو تشغيل أداة. تتيح لكم المهام المخصّصة أتمتة الأعمال الخاصة بالمشروع.

تسجيل مهمة

استخدموا tasks.register مع واجهة برمجة تطبيقات تجنّب التهيئة. فهي مفضّلة على tasks.create الأقدم لأنها تعمل بتقييم كسول.

tasks.register("hello") {
    doLast {
        println("Hello from Gradle")
    }
}

‏doFirst وdoLast

تُشغَّل إجراءات المهمة في مرحلة التنفيذ. يضيف doFirst إجراءً في البداية، بينما يضيف doLast إجراءً في النهاية. أما الشيفرة الموجودة خارجهما فتُشغَّل أثناء التهيئة.

tasks.register("greet") {
    doFirst { println("start") }
    doLast { println("end") }
}

وصف المهمة ومجموعتها

عيّنوا group وdescription لكي تظهر المهمة بصورة منظمة في ./gradlew tasks.

tasks.register("cleanLogs") {
    group = "maintenance"
    description = "Deletes generated log files"
    doLast { /* ... */ }
}

المهام ذات الأنواع

سجّلوا مهمة من نوع مضمّن لإعادة استخدام سلوكه. تنسخ Copy الملفات بطريقة تعريفية.

tasks.register<Copy>("copyDocs") {
    from("src/docs")
    into("build/docs")
}

اعتمادات المهام

عبّروا عن الترتيب باستخدام dependsOn. يُشغَّل الاعتماد أولًا.

tasks.register("deploy") {
    dependsOn("build")
    doLast { println("deploying") }
}

تهيئة مهمة موجودة

يمكنكم الوصول إلى مهمة مسجّلة مسبقًا (أضافتها إحدى الإضافات) وتعديل إعداداتها.

tasks.named("test") {
    // configure the existing test task
}

tasks.test {
    maxParallelForks = 2
}

مدخلات المهام ومخرجاتها

يتيح إعلان inputs وoutputs إجراء التحقق من حداثة المهمة: إذ يتجاوز Gradle المهمة عندما لا يتغير شيء.

tasks.register("generate") {
    inputs.file("data/template.txt")
    outputs.file("build/generated.txt")
    doLast { /* generate */ }
}

عمليات البناء التزايدية

عند تعريف المدخلات والمخرجات بشكل صحيح، تؤدي إعادة تشغيل مهمة لم تتغير إلى طباعة UP-TO-DATE دون تنفيذ أي عمل. ويُعد ذلك عنصرًا أساسيًا في سرعة Gradle.

فئات المهام المخصّصة

لإنشاء منطق قابل لإعادة الاستخدام، عرّفوا فئة تمتد من DefaultTask وتحتوي على أسلوب @TaskAction.

import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction

abstract class GreetTask : DefaultTask() {
    @TaskAction
    fun run() {
        println("Hello")
    }
}

تشغيل مهمتكم

استدعوا أي مهمة مسجّلة باستخدام اسمها مع الغلاف.

// ./gradlew hello
// ./gradlew copyDocs
// ./gradlew deploy

تحقق سريع

تريدون تشغيل إجراء أثناء مرحلة التنفيذ، بعد عمل المهمة الآخر. ما الكتلة التي تستخدمونها؟

مراجعة

يمكنكم أتمتة العمل باستخدام المهام المخصّصة:

  • tasks.register مع doFirst/doLast
  • مهام ذات أنواع مثل Copy، واستخدام dependsOn للترتيب
  • إعلان inputs/outputs لإجراء التحقق من حداثة المهمة
  • فئات DefaultTask مخصّصة مع @TaskAction

التالي: كتالوجات الإصدارات.

الأسئلة الشائعة

هل درس «المهام المخصصة» مجاني؟

نعم — نص درس «المهام المخصصة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ماذا ستتعلم في «المهام المخصصة»؟

أتمتوا العمل تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟

لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «المهام المخصصة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟

نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Gradle Kotlin DSL
  2. التبعيات والإضافات
  3. المهام المخصصة
  4. كتالوجات الإصدارات
← العودة إلى Kotlin Academy