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類。
  • 爲每個屬性創建settergetter方法。
  • 如果task包含其他任務作爲嵌套元素,則class必須實現org.apache.tools.ant.TaskContainer接口。
  • 如果任務支持字符數據,請編寫public void addText(String)方法。
  • 對於每個嵌套元素,writeaddaddConfigured方法。
  • 編寫一個public void execute()方法(不帶參數)並拋出BuildException