ant_任务的含义与使用

任务是一段可执行的代码。任务可以具有多个属性,每个任务都具有共同的结构。任务常见结构由名称,属性等组成。

任务配置结构示例:

<task-name attribute1 = "value1" attribute2 = "value2" ...>
    ...

</task-name>

Apache-Ant中的任务分为两类:①内置任务,②用户定义的任务;

Apache Ant预定义(内置)任务

  ——Apache Ant本身在其库中提供的任务称为内置任务。Apache ant 提供了大量内置任务,可用于执行区分任务。如下所示:

    ~存档任务

    ~审计任务

    ~编译任务

    ~执行任务

    ~文件任务

    ~记录任务

    ~邮件任务

......

存档任务:用于压缩和解压缩数据的任务称为存档任务,常见的内置存档任务如下:

任务名称                     描述
Ear Jar任务的扩展,对文件进行特殊处理                    
Jar 一组文件
Tar 创建tar存档
unjar 解压缩jar文件
untar 解压缩tar文件
unwar 解压缩war文件
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 创建一个目录

Apache Ant内置任务连接示例

——连接单个文件,如果目标文件存在则附加,示例如下:

<concat destfile = "NOTES" append="true">
    <filelist dir = "notes" files = "note.txt">
</concat>

如何使用Apache Ant任务?

要使用任务,首先需要使用<project>标签创建项目。之后,创建一个目标,使用<target>标记对任务进行分组。然后将任务放在目标标记内来执行,示例,使用<java>标签创建java任务:

<project name = "java-ant project" default = "run">
    <target name = "run" depends="compile">
         <java classname = "com.test.Hello">
              <classpath path = "testclass">
              </classpath>
         </java>
    </target>
</project>

Apache Ant用户定义任务

Apache ant允许用户编写自己的任务,参考以下步骤:

  1.首先创建一个Java类并扩展 org.apache.tools.ant.Task类;

  2.为每个属性创建setter和getter方法

  3.如果任务中包含其他任务作为嵌套元素,则class必须实现org.apache.tools.ant.TaskContainer接口

  4.如果任务支持字符数据,请编写public void addText(String)方法

  5.对于每个嵌套元素,write, add或addConfigured方法

  6.编写一个public void execute()方法(不带参数)并抛出BuildException

 

posted @ 2018-08-24 16:36  留白*  阅读(1166)  评论(0编辑  收藏  举报