Apache Ant任务-task标签
精华
小牛编辑
90浏览
2023-03-14
任务是一段可以执行的代码。 任务可以具有多个属性,每个任务都具有共同的结构。 常见结构由任务名称,属性等组成。请参阅下面的示例。
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
类。 - 为每个属性创建
setter
和getter
方法。 - 如果
task
包含其他任务作为嵌套元素,则class
必须实现org.apache.tools.ant.TaskContainer
接口。 - 如果任务支持字符数据,请编写
public void addText(String)
方法。 - 对于每个嵌套元素,
write
,add
或addConfigured
方法。 - 编写一个
public void execute()
方法(不带参数)并抛出BuildException
。