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

任务配置结构示例:

<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

ant_任务的含义与使用的更多相关文章

  1. ant_<target>标签含义与使用

    <target>标记目标 目标是一个或多个任务的集合,任务是一段可执行的代码:构建文件中包含一个项目,在项目内部声明了所有目标: <target name = "run&q ...

  2. 由css reset想到的深入理解margin及em的含义

    由css reset想到的深入理解margin及em的含义 原文地址:http://www.ymblog.net/content_189.html 经常看到这样语句,*{ margin:0px;pad ...

  3. Stack的三种含义

    作者: 阮一峰 日期: 2013年11月29日 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词 ...

  4. wireshark抓包工具简介以及tcp三次握手的一些含义

    wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...

  5. PV、EV、AC、BAC、EAC、ETC等计算公式含义

    PV.EV.AC.BAC.EAC.ETC等计算公式含义 PV Planned Value:计划值 应该完成多少工作, (按照计划截止目前应该花费的预算) AC Actual Cost:实际成本, 完成 ...

  6. [MySQL]show index from tb_name命令各列的含义

    show index from table_name 这个命令有助于诊断性能低下的查询,尤其是查询是否使用了可用的索引. 下面介绍下 这个命令显示的结果列的含义: | Table | Non_uniq ...

  7. CPU状态信息us,sy,ni,id,wa,hi,si,st含义

    转自:http://blog.csdn.net/sasoritattoo/article/details/9318893 转自:http://fishermen.iteye.com/blog/1995 ...

  8. http错误代码含义中英文对照

    Http错误代码含义中文 概要当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字 ...

  9. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

随机推荐

  1. 初识springcloud

    springcloud的基础是springboot,简单地说,就是通过写的springboot应用,使用springcloud集成. 在学习springcloud的过程中,自己的开发环境不能保证和博客 ...

  2. B - 吉哥系列故事——恨7不成妻

    单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=72 77=71 ...

  3. I - 昂贵的聘礼

    来源poj1062 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求 ...

  4. PHP base64数据与图片的互相转换

    1.解析base64数据成图片 The problem is that data:image/bmp;base64, is included in the encoded contents. This ...

  5. Win10上使用VS2015编译Caffe2

    Caffe2的官网:https://caffe2.ai/ 1.下载.安装及相关准备 在Caffe2的官网点击"Get Started",即进入安装说明页面.官方还未提供编译好的bi ...

  6. JavaScript基础知识(DOM)

    获取元素的方法 要操作谁,就要先获取谁: 获取元素 1.document.getElementById:通过ID名来获取元素 兼容性: 在IE8以下,会默认把name属性当做id来获取: docume ...

  7. 个人小爱好:Operating System: three easy pieces第6章第5节——总结

    总结 我们讨论了实现CPU虚拟化的部分底层机制,及我们统称为直接执行(direct execution)的一组技术.基本的思想十分简单明了:直接在CPU上运行你想运行的代码,但是你先得确保将硬件设置好 ...

  8. 通过Navicat远程连接MySQL

    参考: http://blog.csdn.net/apple9005/article/details/53033148 问题一:在主机下通过Navicat连接服务器MySql的时候,提示“2003 C ...

  9. 悬线法 || BZOJ3039: 玉蟾宫 || Luogu P4147 玉蟾宫

    题面: P4147 玉蟾宫 题解:过于板子举报了 #include<cstdio> #include<cstring> #include<iostream> #de ...

  10. 线段树 || BZOJ1756: Vijos1083 小白逛公园 || P4513 小白逛公园

    题面:小白逛公园 题解: 对于线段树的每个节点除了普通线段树该维护的东西以外,额外维护lsum(与左端点相连的最大连续区间和).rsum(同理)和sum……就行了 代码: #include<cs ...