没有合适的资源?快使用搜索试试~ 我知道了~
ANT使用指南ANT使用指南ANT使用指南ANT使用指南ANT使用指南ANT使用指南ANT使用指南ANT使用指南ANT使用指南
资源推荐
资源详情
资源评论
ANT 使用指南
导言
Ant 是基于 java 的编译工具,她类似于 Make 工具
环境
下载最新的 Ant 版本(Http://ant.apache.org),解压到某个目录$Ant。然后设置一下环境变量
ANT_HOME=$Ant
PATH=$PATH:$ANT_HOME/bin
运行 Ant
设置好环境以后,就可以运行 Ant 了。
命令行选项总结:
ant [options] [target [target2 [target3] ...]]
Options:
-help print this message
-projecthelp print project help information
-version print the version information and exit
-quiet be extra quiet
-verbose be extra verbose
-debug print debugging information
-emacs produce logging information without adornments
-logfile file use given file for log output
-logger classname the class that is to perform logging
-listener classname add an instance of class as a project listener
-buildfile file use specified buildfile
-find file search for buildfile towards the root of the filesystem and use the first one found
-Dproperty=value set property to value
例子
ant
使用当前目录下的 build.xml 运行 Ant,执行缺省的 target。
ant -buildfile test.xml
使用当前目录下的 test.xml 运行 Ant,执行缺省的 target。
ant -buildfile test.xml dist
使用当前目录下的 test.xml 运行 Ant,执行一个叫做 dist 的 target。
ant -buildfile test.xml -Dbuild=build/classes dist
使用当前目录下的 test.xml 运行 Ant,执行一个叫做 dist 的 target,并设定 build 属性的值为 build/classes。
编写 build.xml
Projects
buildfile 中每个 task 元素可以有一个 id 属性,可以用这个 id 值引用指定的任务。这个值必须是唯一的。
project 有下面的属性:
Attribute Description Required
name 项目名称. No
default 当没有指定 target 时使用的缺省 target Yes
basedir 用于计算所有其他路径的基路径。该属性可以被 basedir property 覆盖。当覆盖时,该属性被忽略。
如果属性和 basedir property 都没有设定,就使用 buildfile 文件的父目录。 No
项目的描述以一个顶级的<description>元素的形式出现
一个项目可以定义一个或多个 target。一个 target 是一系列你想要执行的。执行 Ant 时,你可以选择执行那
个 target。当没有给定 target 时,使用 project 的 default 属性所确定的 target。
Targets
一个 target 可以依赖于其他的 target。例如,你可能会有一个 target 用于编译程序,一个 target 用于生成可
执行文件。你在生成可执行文件之前必须先编译通过,所以生成可执行文件的 target 依赖于编译 target。Ant
会处理这种依赖关系。
然而,应当注意到,Ant 的 depends 属性只指定了 target 应该被执行的顺序-如果被依赖的 target 无法运行,
这种 depends 对于指定了依赖关系的 target 就没有影响。
Ant 会依照 depends 属性中 target 出现的顺序(从左到右)依次执行每个 target。然而,要记住的是只要某
个 target 依赖于一个 target,后者就会被先执行。
<target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="C,B,A"/>
假定我们要执行 target D。从它的依赖属性来看,你可能认为先执行 C,然后 B,最后 A 被执行。错了,C
依赖于 B,B 依赖于 A,所以先执行 A,然后 B,然后 C,最后 D 被执行。
一个 target 只能被执行一次,即时有多个 target 依赖于它(看上面的例子)。
如果(或如果不)某些属性被设定,才执行某个 target。这样,允许根据系统的状态(java version, OS, 命
令行属性定义等等)来更好地控制 build 的过程。要想让一个 target 这样做,你就应该在 target 元素中,加
入 if(或 unless)属性,带上 target 因该有所判断的属性。例如:
<target name="build-module-A" if="module-A-present"/>
<target name="build-own-fake-module-A" unless="module-A-present"/>
如果没有 if 或 unless 属性,target 总会被执行。
可选的 description 属性可用来提供关于 target 的一行描述,这些描述可由-projecthelp 命令行选项输出。
将你的 tstamp task 在一个所谓的初始化 target 是很好的做法,其他的 target 依赖这个初始化 target。要确保
初始化 target是出现在其他 target依赖表中的第一个target。在本手册中大多数的初始化 target的名字是"init"。
target 有下面的属性:
Attribute Description Required
name target 的名字 Yes
depends 用逗号分隔的 target 的名字列表,也就是依赖表。 No
if 执行 target 所需要设定的属性名。 No
unless 执行 target 需要清除设定的属性名。 No
description 关于 target 功能的简短描述。 No
Tasks
一个 task 是一段可执行的代码。
一个 task 可以有多个属性(如果你愿意的话,可以将其称之为变量)。属性只可能包含对 property 的引用。
这些引用会在 task 执行前被解析。
下面是 Task 的一般构造形式:
<name attribute1="value1" attribute2="value2" ... />
这里 name 是 task 的名字,attributeN 是属性名,valueN 是属性值。
有一套内置的(built-in)task,以及一些可选 task,但你也可以编写自己的 task。
所有的 task 都有一个 task 名字属性。Ant 用属性值来产生日志信息。
可以给 task 赋一个 id 属性:
剩余17页未读,继续阅读
资源评论
侯上校
- 粉丝: 26
- 资源: 92
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java答题期末考试必须考
- 组播报文转发原理的及图解实例
- 青龙燕铁衣-数据集.zip
- 指针扫描和内存遍历二合一工具
- 基于JavaScript的在线考试系统(编号:65965158)(1).zip
- 五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成
- Linux下的cursor安装包
- springboot-教务管理系统(编号:62528147).zip
- 3dmmods_倾城系列月白_by_白嫖萌新.zip
- SVPWM+死区补偿(基于电流极性)+高频注入法辨识PMSM的dq轴电感(离线辨识)-simulink
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功