Ant Task



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.lidihuo.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