Cribble Crabble Gradle: Auto-Build Magic

يعمل المطورون على تسهيل الحياة للناس ، بينما يسهل Gradle للمطورين. إذا كنت تكتب على Android ، فهذه المقالة لك. اقرأ عن أي نوع من الوحش هذا المهد (المفسد: هو فيل) ، وكذلك كيفية العمل معه.


Gradle هو نظام بناء تلقائي يُستخدم لتبسيط العمل مع Java. باستخدام الأدوات القياسية (المشروطة) ، يساعد المطورين في بناء المنتج المناسب دون فقد تفرده. بعد كل شيء ، فإن عملية العمل مع Gradle ليست مجرد اختيار قالب. لكن أول الأشياء أولا.


صورة


حيث لتحميل Gradle


يمكنك تنزيل Gradle على الموقع الرسمي . نوصي بتنزيل كل شيء وتثبيته يدويًا (بحيث لا يبدو أن التوت). للحصول على الإرشادات وجميع الارتباطات الضرورية ، راجع تثبيت Gradle> التثبيت يدويًا . بالمناسبة ، نوصي بقراءة كل شيء. هذا كل شيء. على محمل الجد.


في هذه الصفحة تحتاج إلى تحديد إصدار النظام والنقر على "ثنائي فقط". ثم - قم بفك ضغط أرشيف zip وتعيين متغير بيئة PATH كما هو موضح في التعليمات. إذا تم كل شيء بشكل صحيح ، بعد التثبيت ، يجب أن يعرض الأمر gradle -v إصدار النظام المحدد.


في بعض الأحيان يتضح أنه أثناء التعريف ، يجد النظام Gradle في مكان غير متوقع. في نظام Windows ، يتم حل هذا على النحو التالي:
ل ٪ أنا في (gradle.bat) تفعل صدى . ٪ ~ $ PATH: i


كيفية العمل مع Gradle


Gradle ليس نظامًا محددًا. بالإضافة إلى ذلك ، يستخدم النظام لغات برمجة مختلفة. الأكثر شعبية هي Groovy DSL و Kotlin (ولكن يمكنك الكتابة على الآخرين). سيتم استخدام الخيار الأول في المقالة ، لأن هذه هي لغة وصف المهمة القياسية في Gradle.


قبل البدء ، انتبه إلى المصطلحين: "المهمة" و "المكوّن الإضافي" ، مرة أخرى. بعد كل شيء ، كل العمل مع النظام مبني عليها. الإضافات توفير وإنشاء المهام. المهام هي الإجراءات التي يجب القيام بها. كل شيء بسيط جدا.


يمكنك قراءة المزيد حول هذا الأمر في إرشادات المكونات الإضافية: JavaCompile (إضافة مهام جديدة) و SourceSet (إضافة كائنات مجال جديدة). تعمل الإضافات أيضًا مع اصطلاحات وتمديد الكائنات. على سبيل المثال ، باستخدام المكون الإضافي ، يمكنك إضافة عناصر DSL جديدة و / أو تكوينها.


يتم إنشاء مجموعة "المكونات الأساسية" تلقائيًا عند تثبيت Gradle. في المراحل الأولى ، يوصى باستخدام فئة "الأداة المساعدة" ، وهي المكون الإضافي "Build Init Plugin". يوفر مهام لتهيئة مشروع في النظام. يمكنك تحديد نوع المشروع من القائمة على الموقع.


فليكن تطبيق جافا .
المهمة: gradle init - type java-application


بعد ذلك ، ستظهر ملفات جديدة في المجلد. من بينها:


  • المجلد gradle (الاهتمام ، وليس .gradle) وملف gradlew.bat عبارة عن wrappers و wrappers؛
  • ملف build.gradle - برنامج نصي حيث تتم الإشارة إلى المكتبات والأُطُر والإضافات والمهام الخاصة بمشروع معين.

سوف يعرض الملف الأخير قسم البرنامج المساعد. يحتوي هذا البرنامج المساعد بالفعل على المهام المرتبطة به. يمكن الاطلاع على قائمتهم باستخدام أمر مهام gradle.


المهام


تظهر في كتل من وظائفهم. ويرد كل وصف موجز. الفهم يتطلب معرفة اللغة الإنجليزية على المستوى الأساسي. إذا لم تكن في هذه المجموعة ، فسوف يقوم أي مترجم بذلك. لا توجد بنى معقدة في لغة build.gradle.


بعد تحديد مهمة وإكمالها بنجاح ، سترى نقشًا أخضر "BUILD SUCCESSFUL" في الأسفل. هذا يعني أن (أنت محظوظ) كل شيء سار بسلاسة. أيضا في الجزء السفلي من النظام سوف يقدم تقريرا موجزا.


إذا تم "تنفيذ" الحالة - تكون المهمة قد اكتملت بالفعل. إذا كان "محدثًا" - لا. هذا لا يعني حدوث نوع من الفشل. في حالة مثل هذه الحالة ، لا تتطلب المهمة حلاً من حيث المبدأ ، أي أن هدفها مُحدث بالفعل.


حدث هذا لأن Gradle قام تلقائيًا بإنشاء " عمليات تحديث محدثة " - وهي بنية تدريجية تهدف إلى تحسين النظام. لذلك ، المهام التي تم إكمالها بالفعل أو لا تتطلب إجراءً لا يتم حلها.


يمكنك تعطيل هذا البناء. يدويا. للقيام بذلك ، يجب عليك إكمال المهمة بعلامة - مهام إعادة التشغيل. إذا تم كل شيء بشكل صحيح ، فإن حالة جميع المهام سوف تتغير إلى "تنفيذها".


يسمح لك Gradle أيضًا بعرض السجلات على مستويات مختلفة. على سبيل المثال ، سيسمح لك الأمر gradle run -i بقراءة الرسائل المعلوماتية حول تشغيل النظام ، وسيقوم الأمر run -q بتمكين الوضع الصامت ، وسيعرض التشغيل -d جميع رسائل السجل ، وما إلى ذلك. يمكن العثور هنا على قائمة كاملة من السجلات ومعلومات إضافية حول نظام التسجيل.


اعتمادا على


إدارة التبعية - لتحديد المكتبات أو الأطر التي يحتاجها المشروع. يجب أن يتضمن Gradle هذه التبعيات في مرحلة ما من أجل بناء التطبيق بشكل صحيح (أو بشكل عام) في النهاية. يستدعي الأمر gradle init لتطبيق جافا في النص البرمجي للبناء معلومات حول تكوينين.


التنفيذ مسؤول عن النقل: ستكون تبعياته غير مرئية للمستخدمين. TestImplementation يمتد التكوين السابق. وبالتالي ، فإنها تعمل جنبا إلى جنب.


لفهم التبعيات وكيفية التعامل معها بشكل أفضل ، اقرأ الفصل " إدارة تكوينات التبعية " في الدليل الرسمي. بالمناسبة ، " API وفصل التنفيذ " يشرح بالتفصيل حول API والتنفيذ ، وكذلك الفرق بينهما.


إذا كنت بحاجة إلى تضمين التبعية في القطع الأثرية النهائية ، فيجب عليك تحديد جميع المعلومات اللازمة لبيان ملف jar في إعدادات مهمة jar. كيفية القيام بذلك بشكل صحيح ، يمكنك أن ترى ، على سبيل المثال ، هنا .


بعد ذلك ، تحتاج إلى تضمين التبعيات في الجرة. هذا ضروري لتجميع.
معقدة للغاية؟ استخدم " Gradle Shadow Plugin ".


يعرض الأمر gradle --console plain تبعيات قائمة بجميع التكوينات والتبعيات الخاصة بها في القائمة. يوفر النظام أيضًا للمطورين مرشحًا يستبعد التبعيات من القائمة (gradle - التابعة التابعة لوحدة التحكم عادي | find "-") - بعضها أكثر ملاءمة.


أكثر أنواع التبعيات شيوعًا:


  • خارجي - محمّل من مستودعات خارجية ؛
  • التصميم - يعتمد على الوحدة النمطية في مشروع معين ؛
  • ملف - ترتبط كمحفوظات جرة أو عار.

أي من هذه للاستخدام ، يقرر المطور.
بالنسبة لجافا ، كل شيء محدد جيدًا في إدارة التبعية .


الخارقة الحياة


على الرغم من أن Gradle هو نظام شائع وذات صلة للتجميع التلقائي ، إلا أن العديد من الأشخاص لديهم مشاكل في ذلك. إليك بعض الاقتراحات التي يمكن أن تجعل الحياة أسهل لمطور Android:


  1. استخدم وحدة التحكم. في بعض الأحيان يكون العثور على الأوامر مشكلة ، وعندما تقوم بتغيير build.gradle ، قد يتعطل النظام أو بشكل عام إعادة تشغيل المشروع. لذلك ، يوصي الخبراء باستدعاء Gradle مباشرة من وحدة التحكم.

    عادة ما يذهب Vrapper مع المشروع. يمكن الوصول إلى Linux و macOS مباشرة. في نظام Windows ، اتصل بملف الخفافيش بدلاً من برنامج التضمين.


  2. يخزن Gradle المخبأ ليوم واحد. هذا يمكن إعادة تشكيلها. تحتاج إلى تعديل الكود:


    // build.gradle configurations.all { resolutionStrategy.cacheChangingModulesFor -  , 'hours' resolutionStrategy.cacheDynamicVersionsFor -  , 'minutes' } 

  3. - - التبعيات التبعية - أمر مفيد سيبدأ تحديث جميع التبعيات في Gradle. قد يكون مفيدًا في حالة تلف بعض البيانات الموجودة في ذاكرة التخزين المؤقت ، كما يتحقق. إنه مناسب للاستخدام في حالة تلف بيانات ذاكرة التخزين المؤقت ، حيث يتم التحقق منها وتحديثها (إذا كان مختلفًا).


  4. استخدم CI (التكامل المستمر) عند العمل مع نظام الإنشاء التلقائي. دع اختبارات الوحدة تعمل لجميع الإلتزامات. أيضا ، يوصي الخبراء ربط اختبارات وحدة. يمكن القيام بذلك في Android Studio.

    هذه المجموعة سوف تكتشف الأخطاء في وقت سابق. وعلى الرغم من أنه سيؤدي إلى إبطاء عملية بدء التشغيل ، إلا أن المطور سيكون قادرًا على الاسترخاء في المستقبل. حتى الحياة الاختراق للمستقبل.


  5. حاول مرة أخرى. مخيف؟ (نحن أيضًا) في الواقع ، لا يلزم إعادة تشغيل المزامنة دائمًا على الفور. أولاً ، يوصي الخبراء بفحص النظام ككل. على سبيل المثال ، باستخدام أي أمر بسيط - سيساعد ذلك على فهم فرص نجاح المزامنة التالية.


  6. قم بإعداد بيئة تطوير IntelliJ IDEA باستخدام Gradle. سيؤدي هذا إلى تحسين عملية العمل ، وكذلك استخدام القائمة السحرية.


  7. نصيحة لأولئك الذين يعملون مع Gradle من سطر الأوامر في Android Studio. تحقق من الخطأ "بدء تشغيل Gradle Daemon ، تعذرت إعادة استخدام 1 غير متوافق" (# 68374709). هذه آفة نظام لم يقم المطورو بإصلاحها بعد.



واحدة من المشاكل الرئيسية في Gradle هي "فشل بناء Gradle". يمكننا الاستغناء عن الكلمات غير الضرورية إذا كنت تعرف ذلك بالفعل. إذا لم يكن كذلك ، حظا سعيدا.


صورة


ومع ذلك ، فإن مشكلة Gradle الرئيسية مختلفة. كان الوقت الذي يستغرقه النظام لبناء أسطورة (حزين جدا) في الأوساط المتخصصة. من المستحيل تسريع العمل ، على الأقل ليس بشكل كبير.


لذلك عليك أن تنتظر على أي حال.


يمكنك ، على سبيل المثال ، الانتقال إلى مكان ما في الفضاء ، كما في Interstellar.


صورة


استنتاج


Gradle هو حل جيد ، على الرغم من كل العيوب. التجميع التلقائي سيوفر لك الوقت والطاقة (بغض النظر عن مدى السخرية التي تبدو بعد الفقرة السابقة). وأيضا - لجعل نظافة التطبيق الخاص بك. سوف يلاحظ النظام أي خطأ ولن يسمح لك بإنهاء العمل حتى يتم إصلاحه (بأي ثمن).


Source: https://habr.com/ru/post/ar473642/


All Articles