Apache Ant任務-task標籤
任務是一段可以執行的代碼。 任務可以具有多個屬性,每個任務都具有共同的結構。 常見結構由任務名稱,屬性等組成。請參閱下面的示例。
1. 任務結構
任務配置結構可包括:
<task-name attribute1 = "value1" attribute2 = "value2" ... >
...
</task-name>
Apache Ant任務分爲兩類:
- 內置任務
- 用戶定義的任務
2. Apache Ant預定義(內置)任務
Apache Ant本身在其庫中提供的任務稱爲內置任務。 Apache ant提供了大量內置任務,可用於執行區分任務。 如下列表所示:
- 存檔任務
- 審計任務
- 編譯任務
- 執行任務
- 文件任務
- 記錄任務
- 郵件任務
……
2.1. 存檔任務
用於壓縮和解壓縮數據的任務稱爲歸檔任務。下面列出了一些常見的內置存檔任務。
任務名稱
描述
Ear
Jar任務的擴展,對文件進行特殊處理
Jar
一組文件
Tar
創建tar存檔
Unjar
解壓縮jar文件
Untar
解壓tarfile
Unwar
解壓縮warfile
Unzip
解壓縮zip文件
War
Jar任務的擴展
2.2. 審計任務
任務名稱
描述
JDepend
它用於調用JDepend解析器
2.3. 編譯任務
用於編譯源文件的任務稱爲編譯任務,下面列出了一些常見的內置編譯任務。
任務名稱
描述
Depend
確定哪些類文件的資源已過期
Javac
編譯源文件
JspC
運行JSP編譯器
NetRexxC
編譯NetRexx源文件
Rmic
運行rmic編譯器
2.4. 執行任務
用於執行運行應用程序的任務稱爲執行任務。下面列出了一些常見的內置執行任務。
任務名稱
描述
Ant
在指定的構建文件上運行Ant
AntCall
在同一個構建文件中運行另一個目標
Apply
執行系統命令
Java
執行Java類
Parallel
可包含其他ant任務的容器任務
Sleep
按指定的時間暫停執行
2.5. 文件任務
與句柄文件操作相關的任務稱爲文件任務。下面列出了一些常見的內置文件任務。
任務名稱
描述
Chmod
更改文件的權限
Chown
更改文件的所有權
Concat
連接多個文件
Copy
將文件複製到新目的地
Delete
刪除文件
Mkdir
創建一個目錄
3.Apache Ant內置任務連接示例
連接單個文件,如果目標文件存在則附加。如下示例:
<concat destfile="NOTES" append="true">
<filelist dir="notes" files="note.txt"/>
</concat>
3.1. 如何使用Apache Ant任務?
要使用任務,首先需要使用<project>
標籤創建項目。 之後,創建一個目標,使用<target>
標記對任務進行分組。 然後可以通過將任務放在目標標記內來執行任務。看一個例子,這裏使用<java>
標籤創建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>
4. Apache Ant用戶定義任務
Apache Ant允許用戶編寫自己的任務。編寫自己的任務非常容易。 下面給出了一些必要的步驟。請參考以下幾個步驟。
- 首先創建一個Java類並擴展
org.apache.tools.ant.Task
類。 - 爲每個屬性創建
setter
和getter
方法。 - 如果
task
包含其他任務作爲嵌套元素,則class
必須實現org.apache.tools.ant.TaskContainer
接口。 - 如果任務支持字符數據,請編寫
public void addText(String)
方法。 - 對於每個嵌套元素,
write
,add
或addConfigured
方法。 - 編寫一個
public void execute()
方法(不帶參數)並拋出BuildException
。