Apache Ant 任务概述

鉴于 Ant 提供了大量的任务,可能难以全面了解每个任务的功能。以下表格简要描述了每个任务并提供了指向完整文档的链接。

归档任务
审计/覆盖率任务
编译任务
部署任务
文档任务
EJB 任务
执行任务
文件任务
Java 扩展任务
日志记录任务
邮件任务
其他任务
预处理任务
属性任务
远程任务
SCM 任务
测试任务
归档任务 🔝
任务名称 描述
GUnzip/BUnzip2/UnXZ

解压缩使用 GZip、BZip2 或 XZ 压缩的文件。

GZip/BZip2/XZ

使用 GZip、BZip2 或 XZ 算法压缩文件。此任务不执行任何依赖项检查;始终生成输出文件。

Cab

创建 Microsoft CAB 归档文件。其调用方式类似于 JarZip 任务。此任务将在 Windows 上使用外部 cabarc 工具(由 Microsoft 提供)运行,该工具必须位于您的可执行路径中。

Ear

Jar 任务的扩展,对应该最终出现在企业应用程序归档文件中的文件进行特殊处理。

Jar

将一组文件打包成 JAR 文件。

Jlink

已弃用。请改用 JarZip 任务的 zipfilesetzipgroupfileset 属性。

Manifest

创建清单文件。

Rpm

调用 rpm 可执行文件来构建 Linux 安装文件。此任务目前仅在支持 RPM 的 Linux 或其他 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

修改文件以添加或删除制表符、回车符、换行符和 EOF 字符。

Get

从 URL 获取文件。

Mkdir

创建目录。必要时创建不存在的父目录。

Move

将文件移动到新文件或目录,或将一组文件移动到新目录。

Patch

diff 文件应用于原始文件。

Rename

已弃用。请改用 Move 任务。

RenameExtensions

已弃用。请改用具有 glob 映射器Move 任务。

Replace

在文件或一组文件中用另一个字符串替换给定字符串的出现。

ReplaceRegExp

在文件或一组文件中用替换模式替换给定正则表达式的出现。

SetPermissions

更改资源集合的权限。

Sync

同步两个目录树。

Tempfile

生成新临时文件的名称,并将指定的属性设置为该名称。

Touch

更改文件的修改时间,并可能同时创建该文件。

Java 扩展任务 🔝
任务名称 描述
Jarlib-available

检查文件集或扩展集是否存在扩展。如果存在扩展,则设置指定的属性。

Jarlib-display

显示指定 JAR 文件中包含的“可选包”和“包规范”信息。

Jarlib-manifest

生成一个清单,声明清单中的所有依赖项。依赖项是通过查看指定的路径并搜索 JAR 文件清单中的“扩展”/“可选包”规范来确定的。

Jarlib-resolve

尝试找到一个 JAR 文件来满足扩展,并将 JAR 文件的位置放入指定的属性中。

日志记录任务 🔝
任务名称 描述
Record

运行一个侦听器,将构建过程事件的日志记录输出记录到文件中。可以同时存在多个记录器。每个记录器都与一个文件相关联。

邮件任务 🔝
任务名称 描述
Mail

发送 SMTP 邮件。

MimeMail

已弃用。请改用 Mail 任务。

其他任务 🔝
任务名称 描述
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 文件,并在生成的合并文档上应用样式表,以提供测试用例结果的可浏览报告。