Apache Ant 任務概觀

由於 Ant 提供大量的任務,因此要全面瞭解每個任務的功能可能很困難。下列表格提供每個任務的簡短說明,並提供連結至完整文件。

封存任務
稽核/涵蓋範圍任務
編譯任務
部署任務
文件任務
EJB 任務
執行任務
檔案任務
Java 延伸任務
記錄任務
郵件任務
其他任務
預處理任務
屬性任務
遠端任務
SCM 任務
測試任務
封存任務 🔝
任務名稱 說明
GUnzip/BUnzip2/UnXZ

展開使用 GZip、BZip2 或 XZ 封裝的檔案。

GZip/BZip2/XZ

使用 GZip、BZip2 或 XZ 演算法封裝檔案。此任務不會執行任何相依性檢查;輸出檔案總是會產生

Cab

建立 Microsoft CAB 封存檔案。它的呼叫方式類似於 JarZip 任務。此任務會使用外接程式 cabarc 工具(由 Microsoft 提供)在 Windows 上執行,此工具必須位於您的可執行路徑中。

Ear

Jar 任務的延伸,特別處理應該結束於企業應用程式封存的檔案。

Jar

將一組檔案封裝成 JAR 檔。

Jlink

已棄用。請改用 JarZip 任務的 zipfilesetzipgroupfileset 屬性。

Manifest

建立明細檔。

Rpm

呼叫 rpm 可執行檔來建立 Linux 安裝檔案。此任務目前僅適用於 Linux 或其他支援 RPM 的 Unix 平台。

SignJar

使用 javasign 命令列工具簽署 JAR 或 ZIP 檔案。

Tar

建立 tar 封存檔。

Unjar

解壓縮 JAR 檔。

Untar

解壓縮 tar 檔。

Unwar

解壓縮 WAR 檔。

Unzip

解壓縮一個 zip 檔案。

War

一個 Jar 任務的延伸,特別處理會結束在 Web 應用程式檔案的 WEB-INF/libWEB-INF/classesWEB-INF 目錄中的檔案。

Zip

建立一個 zip 檔案。

稽核/涵蓋率任務 🔝
任務名稱 說明
JDepend

呼叫 JDepend 剖析器。此剖析器「遍歷一組 Java 原始檔目錄,並為每個 Java 套件產生設計品質量測資料」。

編譯任務 🔝
任務名稱 說明
Depend

判斷哪些類別檔相對於其原始檔已過時,移除依賴於過時類別的任何其他類別的類別檔,強制重新編譯已移除的類別檔。通常與 Javac 任務一起使用。

Javac

在執行中的 (Ant) JVM 內,或是在指定 fork 屬性的情況下在另一個 JVM 中,編譯指定的原始檔。

JspC

執行 JSP 編譯器。它可用於預先編譯 JSP 頁面,以快速執行 JSP 頁面的初始呼叫、在未安裝完整 JDK 的伺服器上部署,或僅在不部署的情況下語法檢查頁面。可使用 Javac 任務編譯產生的 Java 原始檔。(對於 WebLogic JSP 編譯器,請參閱 Wljspc 任務。)

NetRexxC

在執行中的 (Ant) JVM 內編譯一個 NetRexx 原始檔樹狀結構。

Rmic

在指定的檔案上執行 rmic 編譯器。

Wljspc

使用 WebLogic JSP 編譯器 weblogic.jspc 編譯 JSP 頁面。(對於非 WebLogic JSP 編譯器,請參閱 JspC 任務。)

部署任務 🔝
任務名稱 說明
ServerDeploy

為特定供應商的 J2EE 伺服器執行「熱」部署工具。

文件任務 🔝
任務名稱 說明
Javadoc

使用 javadoc 工具產生程式碼文件。Javadoc2 任務已不建議使用;請改用 Javadoc 任務。

EJB 任務 🔝
任務名稱 說明
EJB 任務

(請參閱說明 EJB 任務的文件。)

執行任務 🔝
任務名稱 說明
Ant

在提供的建置檔上執行 Ant,選擇性地傳遞屬性(可能具有新值)。此任務可用於建置子專案。

AntCall

在同一個建置檔中執行另一個目標,選擇性地傳遞屬性(可能具有新值)。

Apply/ExecOn

執行系統命令。當指定 os 屬性時,只有當 Ant 在其中一個指定的作業系統上執行時,才會執行命令。

Dependset

將一組原始檔與一組目標檔進行比較。如果任何原始檔比任何目標檔都新,則會移除所有目標檔。

Exec

執行系統命令。當指定 os 屬性時,只有當 Ant 在其中一個指定的作業系統上執行時,才會執行命令。

Java

在執行中的 (Ant) JVM 中執行 Java 類別,如果指定 fork 屬性,則在另一個 JVM 中執行。

Parallel

一個容器任務,可以包含其他 Ant 任務。在 <parallel> 標籤中指定的每個巢狀任務都將在自己的執行緒中執行。

Sequential

一個容器任務,可以包含其他 Ant 任務。巢狀任務只是依序執行。其主要用途是支援在 <parallel> 標籤中對任務子集進行順序執行。

Sleep

暫停執行指定的一段時間。當建置或部署流程需要在任務之間間隔時很有用。

Subant

為所有已定義的子建置呼叫給定的目標。這是 ant 的擴充功能,用於大量專案執行。

Waitfor

封鎖執行,直到一組指定的條件為真。此任務旨在與 Parallel 任務一起使用,以同步一組流程。

檔案任務 🔝
任務名稱 說明
Attrib

變更指定目錄中檔案或所有檔案的權限和/或屬性。目前僅在 Windows 下有效。

Checksum

為檔案或一組檔案產生檢查碼。此任務也可用于執行檢查碼驗證。

Chgrp

變更指定目錄中檔案或所有檔案的群組擁有權。目前僅在 Unix 下有效。

Chmod

變更指定目錄中檔案或所有檔案的權限。目前僅在 Unix 下有效。權限也採用 UNIX 格式,例如 chmod 命令的引數。

Chown

變更指定目錄中檔案或所有檔案的所有者。目前僅在 Unix 下有效。

Concat

將多個檔案串接成單一檔案或串接至 Ant 的記錄系統。

Copy

將檔案或檔案集複製至新的檔案或目錄。

Copydir

已棄用。請改用 Copy 任務。

Copyfile

已棄用。請改用 Copy 任務。

Delete

刪除單一檔案、指定目錄中的所有檔案和子目錄,或由一個或多個 FileSet 指定的檔案集。

Deltree

已棄用。請改用 Delete 任務。

Filter

設定此專案的代碼過濾器,或從指定檔案讀取多個代碼過濾器並將其設定為過濾器。代碼過濾器會由執行檔案複製作業的所有任務使用。

FixCRLF

修改檔案以新增或移除 tab、回車、換行和 EOF 字元。

Get

從 URL 取得檔案。

Mkdir

建立目錄。必要時會建立不存在的父目錄。

Move

將檔案移至新的檔案或目錄,或將檔案集移至新的目錄。

Patch

diff 檔案套用至原始檔案。

Rename

已棄用。請改用 Move 任務。

RenameExtensions

已棄用。請改用具有 glob 對應器Move 任務。

Replace

將檔案或檔案集中特定字串的出現次數替換為另一個字串。

ReplaceRegExp

將檔案或檔案集中特定正規表示式的出現次數替換為替代模式。

SetPermissions

變更資源集合的權限。

Sync

同步兩個目錄樹。

Tempfile

產生新的暫存檔案名稱,並將指定屬性設定為該名稱。

Touch

變更檔案的修改時間,並可能同時建立檔案。

Java 擴充功能任務 🔝
任務名稱 說明
Jarlib-available

檢查 FileSet 或 ExtensionSet 中是否存在擴充功能。如果存在擴充功能,則會設定指定屬性。

Jarlib-display

顯示指定 jar 中包含的 選用套件套件規格 資訊。

Jarlib-manifest

產生宣告 manifest 中所有相依性的 manifest。相依性會透過在指定路徑中尋找 jar manifest 中的 擴充功能/選用套件 規格來決定。

Jarlib-resolve

嘗試找出滿足擴充功能的 jar,並將 jar 的位置放入指定屬性中。

記錄任務 🔝
任務名稱 說明
Record

執行一個監聽器,將建置程序事件的記錄輸出記錄到一個檔案中。同時可以存在多個記錄器。每個記錄器都與一個檔案關聯。

郵件任務 🔝
任務名稱 說明
郵件

傳送 SMTP 電子郵件。

MimeMail

已棄用。請改用 郵件 任務。

其他任務 🔝
任務名稱 說明
Defaultexcludes

修改建置檔案中預設排除模式的清單。

Echo

將文字回顯到 System.out 或檔案中。

Fail

透過擲出 BuildException 退出目前的建置,並選擇性地列印其他資訊。

GenKey

在金鑰庫中產生金鑰。

HostInfo

設定與所提供的伺服器,或執行程序的伺服器相關的屬性。

Input

在建置程序中允許使用者互動,方式是顯示訊息並從主控台讀取一行程的輸入。

Script

Apache BSF 支援的語言中執行腳本。

Sound

根據建置是否失敗或成功,在建置結束時播放音效檔案。

Splash

顯示開機畫面。

Sql

透過 JDBC 執行一系列 SQL 陳述式到資料庫中。陳述式可以從文字檔案中使用 src 屬性讀取,或從 SQL 標籤中讀取。

Taskdef

將任務定義新增到目前的專案中,以便可以在目前的專案中使用這個新任務。

TStamp

根據目前的日期和時間,設定目前專案中的 DSTAMPTSTAMPTODAY 屬性。

Typedef

將資料類型定義新增到目前的專案中,以便可以在目前的專案中使用這個新類型。

XmlValidate

檢查 XML 檔案是否有效(或僅是格式良好)。這個任務使用 Ant 預設目前使用的 XML 解析器,但如有需要,也可以指定任何 SAX1/2 解析器。

前置處理任務 🔝
任務名稱 說明
ANTLR

呼叫 ANTLR 翻譯器產生器,針對語法檔案。

AntStructure

為 Ant 建置檔產生 DTD,其中包含 Ant 目前已知的所有工作資訊。

Import

匯入另一個建置檔,並可能以您自己的目標覆寫其中的目標。

Include

包含另一個建置檔。

JavaCC

呼叫 JavaCC 編譯器編譯器,針對語法檔案。

Javah

從 Java 類別產生 JNI 標頭。

JJDoc

呼叫 JJDoc 文件產生器,針對 JavaCC 編譯器編譯器。JJDoc 會取得 JavaCC 剖析器規格,並產生 BNF 語法的文件。它可以在三種模式下操作,由命令列選項決定。此工作只會在語法檔案比產生的 BNF 語法文件更新時呼叫 JJDoc。

JJTree

呼叫 JJTree 預處理器,針對 JavaCC 編譯器編譯器。它會在 JavaCC 產生的來源中插入剖析樹建置動作。JJTree 的輸出會透過 JavaCC 執行,以建立剖析器。此工作只會在語法檔案比產生的 JavaCC 檔案更新時呼叫 JJTree。

Macrodef

定義一個新工作,作為建立在其他工作上的巨集。

Native2Ascii

將檔案從原生編碼轉換為帶有轉譯 Unicode 的 ASCII。常見用法是將以原生作業系統編碼維護的來源檔案轉換為 ASCII,在編譯之前。

Presetdef

透過為屬性或子元素設定預設值,來定義一個新工作,藉由插入現有工作。

Translate

識別檔案中的金鑰,以特殊符號分隔,並使用從資源組合讀取的值來翻譯它們。

XSLT

透過 XSLT 處理一組文件。

屬性工作 🔝
任務名稱 說明
Available

如果指定的檔案、目錄、類別路徑中的類別或 JVM 系統資源在執行時可用,則設定屬性。

Basename

將屬性設定為指定路徑的最後一個元素。

BuildNumber

協助追蹤建置編號。

Condition

如果特定條件成立,則設定某個屬性;這是 AvailableUptodate 的概括。

Dirname

將屬性設定為指定檔案的值,但最後路徑元素除外。

Echoproperties

列出目前的屬性。

LoadFile

將檔案載入屬性。

LoadProperties

將檔案內容載入為 Ant 屬性。此任務等同於使用 <property file="..."/>,但它支援巢狀 <filterchain> 元素,而且無法在目標外部指定。

MakeURL

從檔案/檔案集或路徑建立 URL (清單)

PathConvert

將巢狀路徑、路徑參考、檔案清單參考或檔案集參考轉換為可在指定平台上使用的格式,或轉換為由指定分隔符號分隔的項目清單,並將結果儲存在指定的屬性中。

Property

在專案中設定屬性 (依名稱和值),或屬性組 (從檔案或資源)。

PropertyFile

建立或修改屬性檔案。當想要對應用程式伺服器和應用程式的組態檔案進行無人值守修改時,這很有用。通常用於自動產生建置編號並將其儲存到建置屬性檔案,或進行日期處理等事情。

Uptodate

如果指定的目標檔案比一組來源檔案新,則設定屬性。

Whichresource

尋找類別或資源。

XmlProperty

從格式良好的 XML 檔案載入屬性值。

遠端任務 🔝
任務名稱 說明
FTP

實作一個基本的 FTP 伺服器,可以傳送、接收、列出和刪除檔案,以及建立目錄。

Rexec

自動化 rexec 會話。

Scp

使用 SSH 將檔案複製到遠端伺服器或從遠端伺服器複製檔案。

setproxy

設定 Java 的 HTTP 代理屬性,以便在同一個 JVM 中執行的任務和程式碼可以透過防火牆存取遠端網站。

Sshexec

使用 SSH 在遠端伺服器上執行命令。

Telnet

自動化 telnet 會話。此任務使用巢狀 <read><write> 標籤來指示要等待的字串,並指定要傳送的文字。

SCM 任務 🔝
任務名稱 說明
Cvs

處理從 CVS 儲存庫擷取的套件/模組。

CvsChangeLog

產生 CVS 儲存庫中記錄變更的 XML 報告。

CVSPass

將項目新增至 .cvspass 檔案。將項目新增至這個檔案具有與 cvs login 指令相同的影響。

CvsTagDiff

產生 CVS 儲存庫中兩個標籤或日期之間變更的 XML 格式報告檔案。

ClearCase

執行 ClearCase cleartool checkincheckoutuncheckoutupdatelockunlockmklbtypermtypemklabelmkattrmkdirmkelemmkbl 指令的任務。

Continuus/Synergy

執行 Continuus ccm checkincheckoutreconfigureccmcheckintaskccmcreatetask 指令的任務。

Microsoft Visual SourceSafe

執行 Visual SourceSafe ss getlabelhistorycheckincheckoutaddcpcreate 指令的任務。

Pvcs

允許使用者從 PVCS 儲存庫中擷取最新版本的原始程式碼。

SourceOffSite

執行 SourceOffSite sos getlabelcheckincheckout 指令的任務。

測試任務 🔝
任務名稱 說明
Junit

Junit 測試架構執行測試。此任務已使用 JUnit 3.0 及更新版本進行測試;它無法與 JUnit 3.0 之前的版本搭配使用。

JunitReport

合併 Junit 任務產生的個別 XML 檔案,並將樣式表套用至合併後的結果文件,以提供可瀏覽的測試案例結果報告。