Apache Ant

אפאצ'י אנט (באנגלית: Apache Ant, ראשי תיבות של "Another Neat Tool"; ה"נמלה" של אפאצ'י) הוא כלי תוכנה לאוטומציה של תהליכי בניית תוכנה. הכלי דומה ל-Make, אבל ממומש באמצעות שפת התכנות Java, דורש את הפלטפורמה של ג'אווה, ומותאם בצורה הטובה ביותר לבניית פרויקטים בג'אווה.

ההבדל הבולט ביותר בין Ant ל-Make הוא ש-Ant משתמשת ב-XML כדי לתאר את תהליך הבנייה ואת התלויות (dependencies) בפרויקט, בעוד ש-Make משתמשת בפורמט הנקרא Makefile. כברירת מחדל, קובץ ה-XML נקרא build.xml.

כיום Ant הוא הכלי הנפוץ ביותר לבניית פרויקטים של ג'אווה. לדוגמה, מרבית המפתחים בג'אווה בקוד פתוח, כוללים את הקובץ build.xml ביחד עם ההפצה שלהם.

מכיוון ש-Ant מאפשרת לשלב בקלות טסטים של JUnit ביחד עם תהליך הבנייה, היא מאפשרת למפתחים המעוניינים בכך לאמץ בקלות שיטות עבודה כמו פיתוח מונחה-בדיקות ואפילו Extreme programming.

Ant הוא פרויקט של מוסד התוכנה אפאצ'י. זוהי תוכנה בקוד פתוח והיא מופצת תחת רישיון אפאצ'י.

קובץ build.xml לדוגמה 
למטה מופיעה דוגמה לקובץ build.xml עבור תוכנית Hello world פשוטה בג'אווה. בדוגמה ניתן לראות כי מוגדרות ארבע מטרות (targets). שמות המטרות: compile ,clobber ,clean ו-jar, ולכל אחת מהן יש את התיאור שלה (description). ה"מטרה" jar מציינת שהיא תלויה (depends) במטרה compile. זה אומר ל-Ant שלפני שהיא יכולה להתחיל את ה"מטרה" jar, עליה קודם להשלים את ה"מטרה" compile.

בתוך כל target מפורטות הפעולות ש-Ant צריכה לבצע על מנת לבנות את אותה "מטרה"; פעולות אלה מבוצעות באמצעות "משימות" (tasks) מוּבְנוֹת. לדוגמה, על מנת לבנות את ה"מטרה" compile, אנט צריכה קודם ליצור תיקייה בשם classes (אנט תיצור את התיקייה רק אם היא עדיין לא קיימת), ואז תיקרא למהדר של ג'אווה. לכן ה"משימות" שבהן משתמשים הן mkdir ו-javac. משימות אלה מבצעות את אותה העבודה שמבצעים יישומי שורת הפקודה בעלי אותם שמות.

עוד task שמשתמשים בו בדוגמה הזאת נקרא jar:
 <jar destfile="hello.jar">

ל"משימה" זו של Ant יש את אותו השם כמו לכלי שורת הפקודה הנפוץ של ג'אווה, JAR, אבל למעשה זוהי קריאה לפונקציה מובנית של אנט המטפלת בקובצי jar/zip. פרט זה אינו רלוונטי עבור מרבית המשתמשים שבסך הכל מקבלים את ה-JAR שרצו, אשר מכיל את הקבצים שהם ביקשו.

משימות רבות של Ant מאצילות את העבודה שלהן על תוכניות חיצוניות שבאות עם מערכת ההפעלה (native) או לתוכניות ג'אווה. משימות אלה משתמשות במשימות אחרות שבאות מובנות באנט: <exec> ו-<java>, על מנת ליצור את שורות הפקודה ולטפל בכל הפרטים של מיפוי המידע בין הקובץ build.xml לארגומנטים של התוכניות והפירוש של הערכים המוחזרים.

ראו גם 
 Apache Maven
 אוטומציה של בניית תוכנה
 Apache Subversion

קישורים חיצוניים

 

קרן התוכנה אפאצ'י
תוכנה חופשית
Java
אוטומציה של בניית תוכנה