1. 将下载到的压缩文件解压缩到任意路径。解压缩后看到如下文件结构。
bin 启动和运行ant的可执行命令
docs Ant工具的相关文档,这些文档对学习使用Ant有很大的作用。
etc 包含一些样式单文件,通常武学理会该目录下的文件
lib 包含Ant的哈新类库
LICENSE 相关说明文档
2. 前提环境
环境变量
JAVA_HOME: JDK的安装路径
ANT_HOME: Ant的安装路径
3. 使用Ant
使用Ant非常简单,当正确安装Ant后,只要输入ant或ant.bat即可。
一些基本命令
ant -f a.xml // 显示指定使用a.xml作为生成文件
ant -file b.xml //显式指定使用b.下xml作为生成文件
ant -verbose -l a.log //运行Ant时生成更多的提示信息,并将提示信息输出到a.log文件中
默认情况下,Ant将运行生成文件里指定的默认target,如果希望运行Ant是显式指定希望运行target,则可以采用如下命令格式。
ant [target [target2 [target 3]]] // 按顺序执行
格式:
ant [option] [target1 [target2 [target3]...]]
4. 定义生成文件
1)生成文件的位置
实际上,使用Ant的关键就是编写生成文件,生成文件定义了该项目的各个生成任务(以target来表示,每个target表示一个生成任务),并定义生成任务之间的依赖关系。
Ant生成文件的默认名为build.xml,也可以去其他名字。但如果为该生成文件器其他名字,将意味着要将这个文件作为参数传给Ant工具。生成文件通常做法是放在项目的顶层目录中,这样有利于保持项目的剑惊愕和清晰。
下面是一个典型的项目层次结构。
<project>
|-src
|-classes
|-lib : 存放第三方JAR包的文件夹
|-dist : 存放项目打包、项目发布文件的文件夹
|-build.xml
2) 生成文件详解
Ant生成文件的根元素是<project/>,每个羡慕可以定义多个生成目标,每个生成目标以一个<target/>元素来定义,他是<project/>元素子元素。而每个<target/>元素又包含需要运行task(如<javac/>, <java/>...)
此外还有<property>元素,用于定义一个或多个属性,Ant生成文件中属性类似于编程语言中宏变量,他们都具有名称和值,与编程语言不同是:Ant生成文件中的属性值不可改变。
2.1) project元素
default : 指定默认target,这个属性是必需。如果运行ant.bat命令时没有显式指定想执行target,Ant将执行该target
basedir : 指定项目的基准路径,生成文件中的其他相对路径都是基于该路径的。
name: 指定项目名,对编译和生成项目没有太大实际作用
description: 指定项目的描述信息,对编译和生成项目没有太大实际作用
2.2) target元素
name: 指定该target的名称,该属性是必需。当Ant运行指定的生成目标时,就是根据该name来确定的。另外,同一个生成文件里不能有两个同名的target元素。
depends: 该属性可指定一个或多个target名,表示运行该target之前应先运行该depends属性所指定的一个或多个target。
if: 该属性指定一个属性名,用属性表示仅当设置了该属性时才执行此target。
unless: 该属性指定一个属性名,用属性表示仅当没有设置该属性时才执行此target
另外,定义任务task的格式如下:
<name attribute1="value1" attribute1="value2">
2.3) property元素
上文提及,Ant文件中的属性值是不可改变的。
定义一个属性最简单形式如下:
如果需要获取属性值,则使用${propName}的形式。例如,如下代码即可获取builddir属性值:
${builddir},譬如
上面代码中的$${builddir}不会获取builddir属性值,而${builddir}才会获取builddir属性值。执行上面任务将会输出:
[echo]${builddir}=dd
PS: 如果在生成文件中使用$符号 ,应该使用$$
property常用属性
name 指定需要设置的属性名
value 指定需要设置的属性值
resource 指定属性文件的资源名称,从而读取属性文件中属性名和属性值
file 指定属性文件的文件名, 从而读取属性文件中属性名和属性值
url 指定属性文件的URL地址, 从而读取属性文件中属性名和属性值
environment 用于指定系统环境变量的前缀
classpath 指定属性文件的文件和路径集
classpathref 指定搜索属性文件的文件和路径及引用