任务是一段可以执行的代码。 任务可以具有多个属性,每个任务都具有共同的结构。 常见结构由任务名称,属性等组成。请参阅下面的示例。
任务配置结构可包括:
<task-name attribute1 = "value1" attribute2 = "value2" ... > ... </task-name>
Apache Ant任务分为两类:
内置任务
用户定义的任务
Apache Ant本身在其库中提供的任务称为内置任务。 Apache ant提供了大量内置任务,可用于执行区分任务。 如下列表所示:
存档任务
审计任务
编译任务
执行任务
文件任务
记录任务
邮件任务
……
用于压缩和解压缩数据的任务称为归档任务。下面列出了一些常见的内置存档任务。
任务名称 | 描述 |
---|---|
Ear | Jar任务的扩展,对文件进行特殊处理 |
Jar | 一组文件 |
Tar | 创建tar存档 |
Unjar | 解压缩jar文件 |
Untar | 解压tarfile |
Unwar | 解压缩warfile |
Unzip | 解压缩zip文件 |
War | Jar任务的扩展 |
任务名称 | 描述 |
---|---|
JDepend | 它用于调用JDepend解析器 |
用于编译源文件的任务称为编译任务,下面列出了一些常见的内置编译任务。
任务名称 | 描述 |
---|---|
Depend | 确定哪些类文件的资源已过期 |
Javac | 编译源文件 |
JspC | 运行JSP编译器 |
NetRexxC | 编译NetRexx源文件 |
Rmic | 运行rmic编译器 |
用于执行运行应用程序的任务称为执行任务。下面列出了一些常见的内置执行任务。
任务名称 | 描述 |
---|---|
Ant | 在指定的构建文件上运行Ant |
AntCall | 在同一个构建文件中运行另一个目标 |
Apply | 执行系统命令 |
Java | 执行Java类 |
Parallel | 可包含其他ant任务的容器任务 |
Sleep | 按指定的时间暂停执行 |
与句柄文件操作相关的任务称为文件任务。下面列出了一些常见的内置文件任务。
任务名称 | 描述 |
---|---|
Chmod | 更改文件的权限 |
Chown | 更改文件的所有权 |
Concat | 连接多个文件 |
Copy | 将文件复制到新目的地 |
Delete | 删除文件 |
Mkdir | 创建一个目录 |
连接单个文件,如果目标文件存在则附加。如下示例:
<concat destfile="NOTES" append="true"> <filelist dir="notes" files="note.txt"/> </concat>
要使用任务,首先需要使用<project>
标签创建项目。 之后,创建一个目标,使用<target>
标记对任务进行分组。 然后可以通过将任务放在目标标记内来执行任务。看一个例子,这里使用<java>
标签创建Java任务。
<project name="java-ant project" default="run"> <target name="run" depends="compile"> <java classname = "com.zyiz.Hello"> <classpath path="test"></classpath> </java> </target> </project>
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
。