ما هو النملة؟
Apache Ant هي أداة توليد قائمة على Java. وفقًا للمؤسس الأصلي جيمس دنكان ديفيدسون ، فإن اسم هذه الأداة هو اختصار لأداة أخرى أنيقة.
ماذا يفعل النملة:
يتم استخدام أدوات التوليد في تطوير البرمجيات لتحويل التعليمات البرمجية المصدرية وملفات الإدخال الأخرى إلى ملفات قابلة للتنفيذ (وربما لتنسيقات صور المنتج القابلة للتثبيت). نظرًا لأن عملية توليد التطبيق تصبح أكثر تعقيدًا ، يصبح من المهم أكثر التأكد من استخدام خطوات الجيل نفسه بالضبط خلال كل جيل ، مع تحقيق أكبر قدر ممكن من الأتمتة لإنشاء إصدارات توليد متسقة في الوقت المناسب.
مزايا النمل:
Ant هي أداة بناء قائمة على Java. من الناحية النظرية ، فهي تشبه إلى حد ما صنعها في (UNIX) C ، ولكن ليس لها عيوب في صنع. أحدث إصدار هو: Ant 1.8.4. نظرًا لأن لدينا بالفعل أدوات Make و Gnumake و Nmake و Jam وغيرها من أدوات البناء ، فلماذا نحتاج إلى أداة بناء جديدة؟ نظرًا لأن مؤلف ANT الأصلي لا يمكنه تحمل القيود والإزعاج لهذه الأدوات عند تطوير البرامج على منصات متعددة (الأجهزة). تعتمد الأدوات الشبيهة بشكل أساسي على قذيفة: فهي تحسب التبعيات ثم تنفيذ الأوامر (هذه الأوامر لا تختلف كثيرًا عن الأوامر التي تكتبها على سطر الأوامر). هذا يعني أنه يمكنك بسهولة تمديد الأداة باستخدام برامج (أمر أمر) خاص بنظام التشغيل أو كتابة برامج جديدة (أمر) ؛ ومع ذلك ، فهذا يعني أيضًا أنك تقصر نفسك على نظام التشغيل المحدد ، أو أنواع OS محددة ، مثل UNIX.
النمل مختلف. على عكس وضع التمديد استنادًا إلى أوامر shell ، يستخدم ANT فئات Java لتمديده. (المستخدم) ليست هناك حاجة لكتابة أوامر shell. يعتمد ملف التكوين على XML. يمكن تنفيذ مهام مختلفة عن طريق استدعاء الشجرة المستهدفة. يتم تشغيل كل مهمة بواسطة كائن ينفذ واجهة مهمة محددة.
يحدد ANT التبعيات بين الملفات التي تم إنشاؤها ، والتي تستخدم فئات Java عبر المنصات. باستخدام ANT ، يمكنك كتابة ملف مولد واحد يعمل باستمرار على أي منصة Java (نظرًا لأن ANT نفسها يتم تنفيذها بلغة Java) ، وهي أكبر ميزة لـ ANT
ANT يولد تحليل الملف:
Ant لا تحدد بناء الجملة المخصص الخاص به. بدلاً من ذلك ، تتم كتابة الملفات التي تم إنشاؤها في XML. هناك مجموعة من عناصر XML المحددة مسبقًا يمكن أن تفهمها ANT ، ويمكن أيضًا تعريف عناصر جديدة لتمديد وظائف ANT. يتكون كل ملف إنشاء من عنصر مشروع واحد ، والذي بدوره يحتوي على عنصر أو أكثر من العناصر المستهدفة. الهدف هو خطوة محددة في عملية التوليد ، والتي تؤدي أي عدد من العمليات ، مثل تجميع مجموعة من ملفات المصدر. ويتم تنفيذ هذه العمليات نفسها بواسطة علامات مهمة مخصصة أخرى ، ثم سيتم تجميع هذه المهام في عناصر مستهدفة فردية حسب الحاجة. يمكن وضع جميع العمليات المطلوبة لعملية توليد واحدة في عنصر هدف واحد ، ولكن هذا يقلل من المرونة. عادة ما يكون من الأفضل تقسيم هذه العمليات إلى خطوات توليد منطقي ، كل خطوة موجودة في العنصر المستهدف الخاص بها. يتيح ذلك إجراء الأجزاء الفردية من عملية التوليد الكلية دون تنفيذ أجزاء أخرى بالضرورة.
على سبيل المثال ، من خلال استدعاء أهداف معينة فقط ، يمكنك تجميع الكود المصدر لمشروعك دون الحاجة إلى إنشاء ملف مشروع قابل للتثبيت. يحتاج عنصر المشروع من المستوى الأعلى إلى احتواء سمة افتراضية ، والتي تحدد الهدف المراد تنفيذه إذا تم استدعاء ANT. ثم تحتاج إلى استخدام العنصر الهدف لتحديد الهدف نفسه.
هنا ملف تم إنشاؤه الأساسي:
<؟
الاستخدام الأساسي للنمل:
1. تكوين متغيرات البيئة:
Ant_home: C: /ant-1.8 -----> مسار دليل تثبيت/إلغاء الضغط على Ant
إلحاق بالمسار: C: /ant-1.8/bin -----> مسار دليل BIN في ANT
2. تأكد مما إذا كان تكوين متغير البيئة يفتح بنجاح نافذة CMD ، ثم أدخل الأمر: ANT:
انظر الشاشة التالية:
نظرًا لأن ANT يحتاج إلى ملف build.xml بشكل افتراضي عند الإنشاء ، فهناك موجه أعلاه ، مما يعني أنه تم تكوين بيئة ANT بنجاح.
3. قم بإنشاء مجلد يسمى HelloWorld باستخدام ANT:
أولاً ، تحتاج إلى تحرير build.xml:
<؟ xml version = "1.0"؟> <Project default = "init"
ثم قم بالتبديل إلى الدليل الذي يوجد فيه ملف build.xml ، أدخل Ant ، وإذا كان هناك موجه على النحو التالي ، فسيكون إنشاء المجلد ناجحًا:
(الجزء الأول يعادل إخراج السجل)
4. يمكنك أيضًا استخدام ANT لإنشاء أدلة ملفات متداخلة متعددة المستويات لا تحتاج إلا إلى تعديلها في ملف build.xml:
<؟
5. حذف الدليل متعدد المستويات على النحو الوارد أعلاه:
<؟
ملاحظة: هنا يحتاج المسار فقط إلى إدخال مسار دليل أعلى مستوى ، وهو بالضبط قوة أداة النمل:
إذا كنت ترغب في حذف دليل في Java ، فيمكنك حذفه ما لم يكن الدليل فارغًا ، وإلا يجب عليك حذفه تدريجياً.
باستخدام أداة ANT ، يمكنك حذف المجلدات التي تحتوي على الدلائل الفرعية مباشرة.
دعونا نلقي نظرة على نموذج XML عينة أخرى:
<؟ </description> <!-يمكن أيضًا استخدام تعليقات XML-> <target name = "init" description = "تهيئة قاعدة بيانات الأرجون"> <!
كما يمكن أن نرى ، يمكن استخدام تعليقات XML عبر ملف الإنشاء من أجل الوضوح. علاوة على ذلك ، تحدد ANT سمات الوصف الخاصة بها وسمات الوصف ، والتي يمكن استخدامها لتوفير مزيد من التعليقات التوضيحية منظمة.
سمة النمل:
تتشابه الخصائص في ANT مع المتغيرات في لغات البرمجة ، وكلها لها أسماء وقيم. ومع ذلك ، على عكس المتغيرات المعتادة ، بمجرد تعيين الخصائص في ANT لم تتغير ؛ فهي غير قابلة للتغيير ، تمامًا مثل كائنات السلسلة بلغة جافا. قد يبدو هذا مقيدًا في البداية ، ولكنه يتبع مبدأ Ant البسيط: بعد كل شيء ، إنها أداة مولد ، وليس لغة برمجة. إذا حاولت تعيين قيمة جديدة إلى خاصية موجودة ، فلن يتم اعتبار ذلك خطأ ، لكن الخاصية ستظل تحتفظ بقيمتها الحالية
التعريف واستخدام الخصائص:
<property name = "metal" value = "beryllium"/>
للإشارة إلى هذه الخاصية في أجزاء أخرى من الملف الذي تم إنشاؤه ، استخدم بناء الجملة التالي:
انسخ الرمز كما يلي: $ {metal}
على سبيل المثال ، لاستخدام هذه القيمة التي تعد جزءًا من قيمة خاصية أخرى ، اكتب الملصق على النحو التالي
<property name = "metal-database" value = "$ {metal} .db"/>
سمة الموقع:
غالبًا ما يتم استخدام السمات للإشارة إلى الملفات أو الدلائل على أنظمة الملفات ، ولكن بالنسبة للمنصات التي تستخدم فواصل مسار مختلفة (على سبيل المثال ، / و /) ، فقد يتسبب ذلك في حدوث مشاكل عند تمويل منصات مختلفة. تم تصميم سمة موقع ANT خصيصًا لتضمين مسارات نظام الملفات بطريقة مستقلة عن النظام الأساسي. استخدم الموقع بدلاً من القيمة مثل هذه:
<property name = "database-file" location = "Archive/DataBase/$ {metal} .db"/> سيتم تحويل الأحرف المفصلة للمسار المستخدمة في سمة الموقع إلى التنسيق الصحيح للنظام الأساسي الحالي ؛ ونظرًا لأن اسم الملف نسبي ، فإنه يعتبر نسبة إلى الدليل الأساسي للمشروع. يمكننا أيضًا كتابته بسهولة على النحو التالي:
<property name = "database-file" location = "Archive/DataBase/$ {metal} .db"/>سيكون لكلا الإصدارين من هذه العلامة نفس السلوك على منصات مختلفة.
تحديد التبعيات:
يتطلب إنشاء المشروع عمومًا العديد من الخطوات - على سبيل المثال ، تحتاج أولاً إلى تجميع الكود المصدري ثم حزمه في ملف أرشيف Java (JAR). تحتوي العديد من هذه الخطوات على ترتيب محدد بوضوح - على سبيل المثال ، لا يمكنك حزم ملف الفئة حتى يقوم المترجم بإنشائه من الكود المصدري. على عكس تحديد الأهداف بالتسلسل ، تتخذ ANT مقاربة أكثر مرونة لتحديد التبعيات. يتم تعريف كل هدف بناءً على جميع الأهداف الأخرى التي يجب تحقيقها قبل تنفيذها. يتم تحقيق ذلك باستخدام سمة العنصر الهدف يعتمد
<target name = "init"/> <target name = "preprocess" يعتمد = "init"/> <target name = "compile" يعتمد = "init ، preprocess"/> <target name = "package" يعتمد = "compile"/>
تتيح لك هذه الطريقة إجراء عملية التوليد في أي مرحلة من مراحل المشروع ؛ سوف تنفذ ANT أولاً المرحلة المحددة المتطلب السابق. في المثال أعلاه ، إذا أكملت ANT خطوة الترجمة ، فسيحدد أن يتم تنفيذ هدفين init والمعالجة المسبقة أولاً. لا يعتمد هدف init على أي هدف آخر ، لذلك سيتم تنفيذه أولاً. ثم يتحقق ANT من المعالجة المسبقة ويجد أنه يعتمد على هدف init ؛ منذ أن تم تنفيذ الأخير ، لن يقوم ANT بتنفيذها مرة أخرى ، لذلك يبدأ في تنفيذ هدف المعالجة المسبقة. أخيرًا ، يمكن تنفيذ مهمة التجميع نفسها.
لاحظ أن الترتيب الذي تظهر به الأهداف في الملف الذي تم إنشاؤه غير مهم: الترتيب الذي يتم فيه تحديد التنفيذ بشكل فريد من خلال السمة يعتمد.