Ant Task
Task是一段可以执行的代码。一个Task可以具有多个属性,并且每个Task具有相同的结构。常见的结构由Task名称,属性等组成。请参见下面的示例。
Task结构
Task可能包括:
<task-name attribute1 = "value1" attribute2 = "value2" ... > ... </task-name>
Apache Ant Task分为两类。
- 内置Task
- 用户定义的Task
Apache Ant预定义(内置)Task
Apache Ant本身在库被称为内置Task。 Apache ant提供了大量的内置Task,可用于执行不同的Task。列表如下。
- 存档Task
- 审核Task
- 编译Task
- 执行Task
- 文件Task
- 记录Task
- 邮件Task
归档Task
用于压缩和解压缩数据的Task称为归档Task。下表列出了一些常见的内置存档Task。
Task名称 | 说明 |
Ear | JarTask的扩展,对文件进行了特殊处理。 |
Jar | 一组文件。 |
Tar | 创建tar存档。 |
Unjar | 解压缩jar文件。 |
Untar | 解压缩一个tarfile。 |
Unwar | 解压缩warfile。 |
Unzip | 解压缩一个zip文件。 |
War | Jar Task的扩展。 |
审核Task
Task名称 | 说明 |
JDepend | 它用于调用JDepend解析器。 |
编译Task
用于编译源文件的Task称为编译Task。下表列出了一些常见的内置编译Task。
Task名称 | 说明 |
Depend | 确定哪些类文件的资源已过期。 |
Javac | 它将编译源文件。 |
JspC | 它运行JSP编译器。 |
NetRexxC | 它将编译NetRexx源文件。 |
Rmic | 运行rmic编译器。 |
执行Task
用于执行运行的应用程序的Task称为执行Task。下表列出了一些常见的内置执行Task。
Task名称 | 说明 |
Ant | 它在指定的构建文件上运行Ant。 |
AntCall | 它在同一buildfile中运行另一个target。 |
Apply | 它执行系统命令。 |
Java | 执行Java类。 |
Parallel | 可以包含其他antTask的容器Task。 |
Sleep | 它将在指定的时间中暂停执行。 |
文件Task
与处理文件操作相关的Task称为文件Task。下表列出了一些常见的内置文件Task。
Task名称 | 说明 |
Chmod | 它将更改文件的权限。 |
Chown | 它将更改文件的所有权。 |
Concat | 它串联多个文件。 |
Copy | 它将文件复制到新目的地。 |
Delete | 删除文件。 |
Mkdir | 它将创建目录。 |
Apache Ant内置Task连接示例
连接单个文件,如果target文件存在则追加
<concat destfile="NOTES" append="true"> <filelist dir="notes" files="note.txt"/> </concat>
如何使用Apache Ant Task?
要使用Task,首先我们需要使用 标签创建一个项目。之后,使用 <target> 标签创建一个target以对Task进行分组。然后,我们可以通过将Task放入target标签中来执行Task。我们来看一个示例,在这里使用 标记创建了 Java Task。
<project name="java-ant project" default="run"> <target name="run" depends="compile"> <java classname = "com.codebaoku.Hello"> <classpath path="test"></classpath> </java> </target> </project>
Apache Ant用户定义Task
Apache Ant允许我们编写自己的Task。编写自己的Task非常容易。下面给出了一些必需的步骤。请考虑以下几点。
- 首先创建Java 类,然后扩展org.apache.tools.ant.Task类。
- 为每个属性创建setter和getter方法。
- 如果Task包含其他Task作为嵌套元素,则类必须实现 org.apache.tools.ant.TaskContainer 接口。
- 如果Task支持字符数据,请编写 public void addText(String)方法。
- 对于每个嵌套元素,编写,添加或addConfigured方法。
- 编写一个没有参数的 public void execute()方法,并抛出一个 BuildException 。
property是键-值对,其中每个值都与一个键相关联。该属性用于设置可在构建文件中的任何位置访问的值。设置属性后,便无法更改。Apache Ant提供了 <property> 标记,可用 ...