**אפאצ'י אנט** (באנגלית: **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*.

```
<?xml version="1.0"?>
<project name="Hello" default="compile">
 <target name="clean" description="remove intermediate files">
 <delete dir="classes"/>
 </target>
 <target name="clobber" depends="clean" description="remove all artifact files">
 <delete file="hello.jar"/>
 </target>
 <target name="compile" description="compile the Java source code to class files">
 <mkdir dir="classes"/>
 <javac srcdir="." destdir="classes"/>
 </target>
 <target name="jar" depends="compile" description="create a Jar file for the application">
 <jar destfile="hello.jar">
 <fileset dir="classes" includes="\*\*/\*.class"/>
 <manifest>
 <attribute name="Main-Class" value="HelloProgram"/>
 </manifest>
 </jar>
 </target>
</project>

```

בתוך כל 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 (פלטפורמת תוכנה) |
| --- |
| פלטפורמה | Java (שפת תכנות) • Java Card • Java ME • Java EE • Java SE • Java Virtual Machine |  |
| טכנולוגיות | Java applet • Java Web Start • Java Servlet • JavaServer Pages • JavaFX • JavaServer Faces |
| מושגים | איסוף זבל • Cross-platform • Java Bytecode • Java Development Kit • Javadoc • Java Classloader • Java Class Library 
JIT Compiler • HotSpot • JavaBeans • Enterprise JavaBeans • JNI • JAR • POJO • Web container • Java annotation 
Java package • Java Class File |
| ממשקי תכנות יישומים | Swing • AWT • SWT • Java 3D • Java 2D • JMS • JDBC • JAXP • JPA • RMI • JNDI |
| שפות ל-JVM | Scala • Clojure • Groovy • JRuby • Jython |
| תשתיות תוכנה וכליםשל חברות צד שלישי | אפאצ'י טומקט‏ • Apache Maven • Apache Ant • Apache Struts
JUnit • Hibernate • Spring Framework • JBoss • Google Web Toolkit • BEA WebLogic • IBM WebSphere |
| סביבות פיתוח משולבות | Eclipse • NetBeans • IntelliJ |
| חברות | סאן מיקרוסיסטמס • אורקל |
| אישים | ג'יימס גוסלינג • ביל ג'וי • אריק שמידט |

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

ויקישיתוף מדיה וקבצים בנושא **Apache Ant** בוויקישיתוף
* 

* אתר האינטרנט הרשמי של Apache Ant (באנגלית)

|  |  |
| --- | --- |
| בקרת זהויות עריכת הנתון בוויקינתונים | 
* NLI: 987009950831905171
* GND: 4689797-5
* LCCN: n2002066009
* VIAF: 181177554
* WorldCat (עם VIAF): 181177554

 |