任務是一段可以執(zhí)行的代碼。 任務可以具有多個屬性,每個任務都具有共同的結構。 常見結構由任務名稱,屬性等組成。請參閱下面的示例。
任務配置結構可包括:
<task-name attribute1 = "value1" attribute2 = "value2" ... >
...
</task-name>
Apache Ant任務分為兩類:
Apache Ant本身在其庫中提供的任務稱為內(nèi)置任務。 Apache ant提供了大量內(nèi)置任務,可用于執(zhí)行區(qū)分任務。 如下列表所示:
……
用于壓縮和解壓縮數(shù)據(jù)的任務稱為歸檔任務。下面列出了一些常見的內(nèi)置存檔任務。
| 任務名稱 | 描述 |
|---|---|
| Ear | Jar任務的擴展,對文件進行特殊處理 |
| Jar | 一組文件 |
| Tar | 創(chuàng)建tar存檔 |
| Unjar | 解壓縮jar文件 |
| Untar | 解壓tarfile |
| Unwar | 解壓縮warfile |
| Unzip | 解壓縮zip文件 |
| War | Jar任務的擴展 |
| 任務名稱 | 描述 |
|---|---|
| JDepend | 它用于調(diào)用JDepend解析器 |
用于編譯源文件的任務稱為編譯任務,下面列出了一些常見的內(nèi)置編譯任務。
| 任務名稱 | 描述 |
|---|---|
| Depend | 確定哪些類文件的資源已過期 |
| Javac | 編譯源文件 |
| JspC | 運行JSP編譯器 |
| NetRexxC | 編譯NetRexx源文件 |
| Rmic | 運行rmic編譯器 |
用于執(zhí)行運行應用程序的任務稱為執(zhí)行任務。下面列出了一些常見的內(nèi)置執(zhí)行任務。
| 任務名稱 | 描述 |
|---|---|
| Ant | 在指定的構建文件上運行Ant |
| AntCall | 在同一個構建文件中運行另一個目標 |
| Apply | 執(zhí)行系統(tǒng)命令 |
| Java | 執(zhí)行Java類 |
| Parallel | 可包含其他ant任務的容器任務 |
| Sleep | 按指定的時間暫停執(zhí)行 |
與句柄文件操作相關的任務稱為文件任務。下面列出了一些常見的內(nèi)置文件任務。
| 任務名稱 | 描述 |
|---|---|
| Chmod | 更改文件的權限 |
| Chown | 更改文件的所有權 |
| Concat | 連接多個文件 |
| Copy | 將文件復制到新目的地 |
| Delete | 刪除文件 |
| Mkdir | 創(chuàng)建一個目錄 |
連接單個文件,如果目標文件存在則附加。如下示例:
<concat destfile="NOTES" append="true">
<filelist dir="notes" files="note.txt"/>
</concat>
要使用任務,首先需要使用<project>標簽創(chuàng)建項目。 之后,創(chuàng)建一個目標,使用<target>標記對任務進行分組。 然后可以通過將任務放在目標標記內(nèi)來執(zhí)行任務??匆粋€例子,這里使用<java>標簽創(chuàng)建Java任務。
<project name="java-ant project" default="run">
<target name="run" depends="compile">
<java classname = "com.yiibai.Hello">
<classpath path="test"></classpath>
</java>
</target>
</project>
Apache Ant允許用戶編寫自己的任務。編寫自己的任務非常容易。 下面給出了一些必要的步驟。請參考以下幾個步驟。
org.apache.tools.ant.Task類。setter和getter方法。task包含其他任務作為嵌套元素,則class必須實現(xiàn)org.apache.tools.ant.TaskContainer接口。public void addText(String)方法。write,add或addConfigured方法。public void execute()方法(不帶參數(shù))并拋出BuildException。