Apache Ant
מפתח | מוסד התוכנה אפאצ'י |
---|---|
גרסה אחרונה | 1.9.4 (5 במאי 2014) |
מערכת הפעלה | חוצה פלטפורמות |
סוג רישיון | רישיון אפאצ'י |
קטגוריה | בניית תוכנה |
ant.apache.org |
אפאצ'י אנט (באנגלית: 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 לארגומנטים של התוכניות והפירוש של הערכים המוחזרים.
ראו גם
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 | |
ממשקי תכנות יישומים | 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 | |
חברות | סאן מיקרוסיסטמס • אורקל | |
אישים | ג'יימס גוסלינג • ביל ג'וי • אריק שמידט |