البرنامج التعليمي لـ Apache ANT: ما هي أداة بناء Ant؟ مثال

⚡ ملخص ذكي

أباتشي أنت هو Java أداة بناء تعتمد على ملف XML، تعمل على أتمتة عمليات التجميع والاختبار والتغليف والنشر. تُعرّف هذه المقالة الأداة، tracتاريخها، يغطي Windows يشرح هذا الدليل عملية التثبيت، وبنية المشروع، ويقارنها بنظام Maven و Gradle.

  • 🔨 التعريف الأساسي: Ant هو اختصار لـ Another Neat Tool، وهو يحول التعليمات البرمجية المصدرية إلى تطبيق قابل للتنفيذ من سطر الأوامر.
  • 📄 ملف البناء: توجد كل التعليمات في ملف XML، والذي يُسمى عادةً build.xml، والذي لا يتطلب لغة برمجة إضافية.
  • 🧱 بنية ثلاثية العقد: يحتوي ملف البناء دائمًا على مهام داخل أهداف، وأهداف داخل عنصر مشروع واحد.
  • 🔗 التحكم في التبعية: تقوم السمة depends بترتيب الأهداف، لذا يتم تشغيل عملية التجميع دائمًا قبل عملية إنشاء ملف jar وقبل عملية النشر.
  • ⚙️ إعداد البيئة: يتطلب التثبيت JDK، ومتغير ANT_HOME، ومجلد Ant bin المضاف إلى مسار النظام.
  • ؟؟؟؟ مقارنة الأدوات: يوفر Ant حرية إجرائية، بينما يفرض Maven الاصطلاحات من خلال إدارة التبعيات، Gradle يجمع بين كليهما مع عملية بناء مكتوبة مسبقًا.
  • 🌍 ميزة سهولة النقل: يتم تشغيل عملية البناء بشكل متطابق على Windows ونظام لينكس أينما كان Java الآلة الافتراضية متاحة.

أباتشي النمل التعليمي

ما هي أداة البناء؟

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

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

ما هو أباتشي النمل؟

أباتشي النملة هو Javaأداة سطر الأوامر القائمة على البناء Java التطبيقات مع قابلية النقل الكاملة للنقية Java يُمكّن Ant المطورين من تبني مبادئ التطوير الرشيق والتطوير القائم على الاختبار لأتمتة مهام التطوير المتكررة مثل إنشاء الوثائق. Ant هو اختصار لعبارة Another Neat Tool (أداة رائعة أخرى).

أباتشي النملة

كما يوضح الرسم التخطيطي، يقوم Ant بقراءة ملف البناء، وحل ترتيب الأهداف الموجودة بداخله، ثم يقوم بتشغيل المهام الفردية التي تقوم بتجميع ونسخ واختبار وتغليف التطبيق.

ما هي أداة Apache Ant Build المستخدمة؟

فيما يلي بعض الفوائد المهمة لاستخدام أداة البناء:

  • تتيح لك أداة البناء أتمتة مهام محددة متكررة مثل تجميع التعليمات البرمجية المصدرية، وتشغيل اختبارات البرامج، وإنشاء ملفات لنشر البرامج.
  • تعمل أدوات البناء في الغالب بدون واجهة مستخدم رسومية.
  • يساعدك على تحويل شفرة المصدر إلى شفرة قابلة للتنفيذ.
  • يوفر خيار إعادة تجميع الملف فقط عند الضرورة.
  • يُمكّنك ذلك من تجميع أعداد كبيرة من الملفات في وقت قصير نسبيًا.
  • أداتان بناء شائعتان على نطاق واسع يستخدمهما Java المطورون هم أباتشي مخضرم والنملة.

تاريخ نملة أباتشي

سنتعرف الآن على تاريخ أداة بناء Apache Ant.

فيما يلي المعالم التاريخية الهامة من أداة Apache Ant:

  • ابتكر جيمس دنكان ديفيدسون شخصية النملة في يوليو 2000.
  • تم استخدامه في البداية لبناء Tomcat وجاء كمنتج مدمج في مجموعة توزيع Tomcat.
  • في مايو 2014، تم إصدار Apache Ant الإصدار 1.9.4 مع العديد من الميزات المتقدمة.
  • بدأ إصدار 1.10.x في عام 2017 ولا يزال الفرع الذي يتم صيانته بشكل فعال.
  • تم إصدار النسخة 1.10.17 في 10 أبريل 2026 وتتطلب حدًا أدنى من Java 8 وقت التشغيل.

مميزات اباتشي النملة

فيما يلي الميزات الأساسية لبرنامج أباتشي أنت:

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

كيفية تثبيت وتكوين Apache Ant على Windows

سنتعلم الآن عملية تثبيت Apache Ant على Windows.

نحن نفترض أنك قمت بالفعل بتنزيل وتثبيت ملف Java مجموعة تطوير (JDK) على جهاز الكمبيوتر الخاص بك. تأكد من ضبط متغير بيئة JAVA_HOME على المجلد الذي تم تثبيت JDK فيه. اتبع الخطوات التالية لتثبيت Ant:

الخطوة 1) تحميل الثنائيات.
تحميل الثنائيات من https://ant.apache.org/bindownload.cgi

تثبيت وتكوين Apache Ant على Windows

الخطوة 2) فك ضغط الملفات.
قم بفك ضغط هذا الملف المضغوط إلى موقع مناسب مثل c:\folder، باستخدام WinZip, WinRAR, 7-Zipأو أداة مماثلة.

تثبيت وتكوين Apache Ant على Windows

الخطوة 3) إنشاء متغير البيئة.
قم بإنشاء متغير بيئي لـ "ANT_HOME" وقم بتعيين قيمة المتغير إلى موقع مجلد Ant.

  1. انقر بزر الماوس الأيمن على أيقونة "هذا الكمبيوتر".
  2. انقر على خصائص.

تثبيت وتكوين Apache Ant على Windows

الخطوة 4) انتقل إلى إعدادات النظام.
انقر على "إعدادات النظام المتقدمة".

تثبيت وتكوين Apache Ant على Windows

الخطوة 5) على خصائص النظام،
انقر على علامة التبويب "متقدم".

تثبيت وتكوين Apache Ant على Windows

الخطوة 6) ابحث عن متغيرات البيئة.
انقر على زر "المتغيرات البيئية...".

تثبيت وتكوين Apache Ant على Windows

الخطوة 7) أنشئ متغيرًا جديدًا.
انقر على "جديد" لإنشاء متغير مستخدم جديد.

تثبيت وتكوين Apache Ant على Windows

الخطوة 8) أدخل تفاصيل المتغير.
أدخل تفاصيل متغير المستخدم الجديد.

  1. أدخل اسم المتغير كـ ANT_HOME.
  2. أدخل قيمة المتغير كمجلد تم فيه فك ضغط Ant، ​​على سبيل المثال C:\apache-ant-1.10.17.
  3. انقر فوق الزر "موافق".

تثبيت وتكوين Apache Ant على Windows

الخطوة 9) تم إنشاء المتغير.
انقر فوق الزر "موافق".

تثبيت وتكوين Apache Ant على Windows

الخطوة 10) أغلق الشاشة.
انقر على "موافق" لإغلاق الشاشة.

تثبيت وتكوين Apache Ant على Windows

💡 نصيحة: يجب أن يشير ANT_HOME إلى مجلد التثبيت نفسه، وليس إلى مجلد bin الموجود بداخله. ثم أضف %ANT_HOME%\bin إلى متغير المسار، بحيث يتم التعرف على أمر النمل من أي دليل.

يمكنك التحقق من نجاح تثبيت Ant عن طريق typing الأمر "ant -version" في موجه الأوامر.

سترى الشاشة التالية:

تثبيت وتكوين Apache Ant على Windows

مثال على أباتشي ANT

يُعرّف ملف البناء أدناه هدفًا واحدًا باسم hello يقوم بطباعة رسالة. يُعلن عنصر المشروع عن اسم وهدف افتراضي، لكي يعرف Ant ما يجب تشغيله عندما لا يتم تحديد هدف في سطر الأوامر.

<?xml version="1.0"?>
<project name="HelloWorld" default="hello" basedir=".">

    <target name="hello">
        <echo>Hello, World</echo>
    </target>

</project>

احفظ هذا الملف باسم "build.xml"، ثم اتبع هاتين الخطوتين:

  • افتح موجه الأوامر وانتقل إلى الدليل الذي يحتوي على ملف build.xml.
  • يجري ant hello، أو ببساطة antلأن "hello" مُعرّف كهدف افتراضي. لاستخدام اسم ملف مختلف، شغّل الأمر التالي: ant -f mybuild.xml hello.

الإخراج:

Buildfile: C:\projects\demo\build.xml

hello:
     [echo] Hello, World

BUILD SUCCESSFUL
Total time: 0 seconds

هيكل مشروع ANT

هيكل مشروع ANT

هيكل مشروع ANT

كما يوضح مخطط الهيكل، سيحتوي كل بناء على ثلاث عقد:

  • مشروع
  • Target
  • مهمة

مشروع

كل شيء داخل ملف البناء في Apache ANT موجود ضمن مشروع.

سمات:

  • الاسم: اسم المشروع.
  • الدليل الأساسي: هذا هو المجلد الذي سيتم حساب جميع المسارات منه. ويمكن تغيير ذلك باستخدام الخاصية "basedir".
  • الافتراضي: يساعدك هذا على تحديد الهدف الافتراضي لهذا المشروع. إذا لم يتم تحديد هدف، فسيقوم Ant بتنفيذ الهدف الافتراضي.

Target

الهدف هو مجموعة من المهام، والتي يتم تحديدها للوصول إلى حالة معينة في عملية البناء.

سمات:

  • الاسم: اسم الهدف (مطلوب).
  • الوصف: Descriptأيون الهدف.
  • يعتمد على: على أي هدف يعتمد هذا الهدف الحالي؟
  • إذا: لا يتم تنفيذ الهدف إلا إذا تم تعيين قيمة لخاصية الهدف.
  • ما لم: ينفذ الهدف فقط إذا لم يتم تعيين قيمة الخاصية.

المهام

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

النمط العام لكتابة مهمة هو:

<name attribute1="value" attribute2="value2"…/>

يمكنك استخدام مهمة مضمنة، أو يمكنك إنشاء مهمتك الخاصة. يسرد الجدول أدناه المهام التي تظهر في كل شيء تقريبًا Java ملف البناء.

مهمة الهدف السمات النموذجية
صدى اطبع رسالة على وحدة التحكم الرسالة
مكدير قم بإنشاء دليل دير
حذف إزالة الملفات أو المجلدات dir, includeemptydirs
جافاك جمع Java ملفات المصدر srcdir، destdir، includeantruntime
جرة قم بتجميع الفئات في أرشيف jar destfile, basedir
نسخة نسخ الملفات بين المواقع ملف، إلى الدليل
جونيت تشغيل اختبارات الوحدة فشل هالتون، ملخص الطباعة

مثال كامل لملف build.xml مع عدة ملفات. Targets

يربط ملف البناء الواقعي عدة أهداف معًا. تضمن السمة depends الترتيب، لذا يقوم Ant بتنظيف مجلد الإخراج، وتجميع المصدر، ثم بناء ملف jar.

<?xml version="1.0"?>
<project name="DemoApp" default="jar" basedir=".">

    <!-- reusable values -->
    <property name="src.dir"   value="src"/>
    <property name="build.dir" value="build"/>

    <target name="clean" description="Remove previous output">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile" depends="clean" description="Compile sources">
        <mkdir dir="${build.dir}/classes"/>
        <javac srcdir="${src.dir}" destdir="${build.dir}/classes"
               includeantruntime="false"/>
    </target>

    <target name="jar" depends="compile" description="Package the jar">
        <mkdir dir="${build.dir}/jar"/>
        <jar destfile="${build.dir}/jar/DemoApp.jar"
             basedir="${build.dir}/classes">
            <manifest>
                <attribute name="Main-Class" value="com.guru99.Main"/>
            </manifest>
        </jar>
    </target>

</project>

الإخراج:

Buildfile: C:\projects\DemoApp\build.xml

clean:
   [delete] Deleting directory C:\projects\DemoApp\build

compile:
    [mkdir] Created dir: C:\projects\DemoApp\build\classes
    [javac] Compiling 3 source files to C:\projects\DemoApp\build\classes

jar:
    [mkdir] Created dir: C:\projects\DemoApp\build\jar
      [jar] Building jar: C:\projects\DemoApp\build\jar\DemoApp.jar

BUILD SUCCESSFUL
Total time: 1 second

أباتشي أنت ضد مافن ضد Gradle

تهيمن ثلاث أدوات بناء على Java النظام البيئي، وكل نظام يتخذ موقفاً مختلفاً بشأن مقدار الهيكلة التي يجب فرضها.

معامل أباتشي النملة Apache Maven Gradle
تنسيق نص البناء XML XML Groovy أو لغة Kotlin DSL
النهج في الإجراءات، أنت تحدد كل خطوة. تصريحي، اتفاقية بدلاً من التكوين تصريحي مع امتدادات برمجية
إدارة التبعية غير مدمج، تمت إضافته من خلال Apache Ivy مدمج مع مستودع مركزي مدمج، متوافق مع Maven
هيكل المشروع مجاني تماما تصميم قياسي ثابت قائم على الاتفاقية ولكنه قابل للتجاوز
تزايدي يبني محدود محدود نعم، مع ذاكرة تخزين مؤقتة للبناء
منحنى التعلم مستوى منخفض لمستخدمي XML معتدل أكثر انحدارًا، يتطلب اتصال DSL
أفضل مناسبة ل مشاريع تراثية وتصاميم مخصصة للغاية Standard Java مشروع ناجح وحدات متعددة كبيرة و Android مشروع ناجح

يظل Ant الخيار العملي عندما لا يتناسب البناء مع تخطيط قياسي، أو عندما يعتمد مشروع قائم بالفعل على أهداف مكتوبة يدويًا.

أفضل الممارسات لاستخدام Apache Ant

فيما يلي بعض أفضل الممارسات لاستخدام Apache Ant.

  • يجب عليك أتمتة ترقيم البناء باستخدام ملفات الخصائص.
  • يمكنك تنفيذ عملية بناء قابلة للتخصيص باستخدام ملفات الخصائص الافتراضية وملفات خصائص البناء. تتيح لك هذه الملفات تخزين الخصائص التي تحدد بيانات عملية البناء، مثل إصدار المُصرّف وإعدادات التحسين.
  • يمكنك إعادة استخدام المكتبات المعدة مسبقًا باستخدام ملفات خصائص المكتبة.
  • قم بتزويد كل هدف بسمة وصف، بحيث ant -projecthelp يسرد ملخصًا مفيدًا للبناء.
  • احتفظ بالهدف النظيف منفصلاً، ولا تقم أبدًا بحذف دليل يحتوي أيضًا على ملفات المصدر.

مزايا استخدام Apache Ant

فيما يلي فوائد استخدام Apache Ant:

  • Ant محايد للمنصة، لذا فهو يساعدك على إدارة الخصائص التي تركز على المنصة مثل فواصل الملفات.
  • تتيح لك Ant تنفيذ مهام خاصة بالمنصة، مثل تعديل وقت تعديل ملف باستخدام الأمر 'touch'.
  • تُكتب نصوص Ant باستخدام لغة بسيطة XMLلذلك، إذا كنت على دراية بـ XML بالفعل، فستتمكن من تعلم Ant بسرعة.
  • يوفر Ant قائمة كبيرة من المهام المحددة مسبقًا.
  • يوفر واجهة لتطويرping مهام مخصصة.
  • يمكنك بسهولة استدعاء Ant من سطر الأوامر، مما يسمح بالتكامل مع بيئات التطوير المتكاملة المجانية والتجارية.
  • كل ما تحتاجه هو JVM، لذا فهو يعمل في أي مكان يتوفر فيه JVM.
  • Apache Ant هي مكتبة مفتوحة المصدر تتيح للمستخدمين الوصول إلى كود المصدر وإعادة إنتاجه.
  • أباتشي أنت هي أداة متعددة المنصات تتيح لك التعامل مع Java classpath وبنية دليل الملفات بطريقة ميسورة التكلفة.
  • Apache Ant قابل للتوسعة بسهولة باستخدام Java ولغات البرمجة الأخرى.
  • يوفر Apache Ant دعمًا مدمجًا لتطوير J2EE، مثل تجميع وتغليف EJB.
  • يمكنك استخدامه لمشروع شخصي صغير وكذلك لمشروع برمجي كبير أو موقع ويب.

غالباً ما يُستخدم Ant مع مُشغّل الاختبارات وخادم التكامل المستمر. انظر JUnit بالنسبة لطبقة الاختبار، Jenkins بالنسبة لعمليات البناء المجدولة، و باستخدام Apache Ant مع Selenium لأتمتة اختبار المتصفح. يمكن عرض التقارير التي يتم إنتاجها أثناء عملية البناء باستخدام جاسبر ريبورتس.

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

Ant هو اختصار لعبارة Another Neat Tool (أداة رائعة أخرى). أنشأه جيمس دنكان ديفيدسون في يوليو 2000 أثناء عمله على بناء Tomcat، وتم التبرع به لمؤسسة Apache Software. Foundation.

لا، لكن برنامج Ant يبحث عن ملف build.xml افتراضيًا في المجلد الحالي. أي اسم آخر يعمل عند تمريره مع الخيار -f أو -buildfile في سطر الأوامر.

ليس بمفرده. Apache Ivy هو المشروع المصاحب الذي يضيف حل التبعيات، ويمكنه تنزيل العناصر من نفس المستودعات التي يستخدمها Maven.

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

نعم، بالنسبة لأهداف التجميع القياسية، وملفات JAR، وأهداف الاختبار. تحقق من إدخالات مسار الفئة وسمة includeantruntime، لأن الملفات المُنشأة غالبًا ما تحذفها وتُنتج تحذيرات مُربكة.

نعم للحفاظ على الإرث Java الأنظمة التي لا يمكن فيها ترحيل البنية الحالية بتكلفة منخفضة. تبدأ المشاريع الجديدة عادةً باستخدام Maven أو Gradleوالتي توفر أدوات الذكاء الاصطناعي أيضًا دعمًا أكثر موثوقية.

تلخيص هذه التدوينة بـ: