Ant是基于Java的生成工具,用于管理整个项目的编译、生成。
特点:①Ant工具使用XML文件来编写生成文件
②跨平台、简单、易用
P.S Ant提供了"exec"核心任务,这个任务允许执行特定操作系统上的命令
Ant包的结构:
- bin:可执行性命令
- etc:样式单文件
- lib:Ant的核心类库
- manual:相关文档
- LICENSE:说明性文档
使用Ant工具:(首先打开命令提示符界面)
ant或ant.bat (之后没有命令选项) 在当前目录下搜索build.xml文件,找到就以这个文件作为生成文件,并执行默认target(生成任务)
-find或者-s选项 到上级目录搜索生成文件,直至文件系统根路径
-buildfile 或者 -file 或 -f 选项 + <生成文件> Ant使用其他生成文件
【附加选项】 -quiet或-q选项 运行时只输出少量必要信息
-verbose或-v选项 运行时输出更多的提示信息
-logfile或-l 选项 +<file>将提示信息输出到指定文件,而不是直接输出到控制台
-D<property>=<value>指定<perperty>来覆盖生成文件中指定的属性值
P.S. Windows下访问环境变量的方式------%ANT_HOME%
Linux下访问环境变量的方式------$ANT_HOME
使用Ant的关键---编写生成文件
生成文件定义了该项目的各个生成任务target和target之间的依赖关系
生成文件默认名为build.xml 通常放在项目的顶层目录
项目层次结构:
<project>-------------存放了整个项目的全部资源
|--src----------存放源文件、各种配置文件的文件夹
|--classes--- 存放编译后的class文件的文件夹
|--lib-----------存放第三方JAR包的文件夹
|--dist---------存放项目打包、项目发布文件的文件夹
|--build.xml--Ant生成文件
生成文件build.xml的内部
<project.../> 文件根元素,属性: (必填)default-----默认target basedir----项目基准路径 name---项目名 description--描述信息
|-----(可多个)<target.../> 定义生成目标 ,属性: (必填)name--确定生成目标的唯一标识 depends---指定先运行一个或多个target
if--设置某属性才执行此target unless--没有设置某属性才执行此target
description--描述信息
|-----<name attributes1="value1".../>定义完成任务,执行该任务所需的属性名和属性值
通常有核心任务(Ant自带)、可选任务(第三方)、用户自定义的任务(用户自己开发) |----<classpath.../>用于定义一个或多个文件或路径(第三方,可引用,临时定义)
|----(可多个)<property name="builddir" value="dd"/> 用于定义一个或多个属性,类似宏变量,该元素指定其他属性有
resource或file或url---从某属性文件中读取属性名和属性值,分别以资源名、文件名、URL地址
environment------指定系统环境变量 classpath---指定搜索属性文件classpath
classpathref--引用<path.../>元素定义的文件或路径集
|----<path.../>用于定义一个或多个文件或路径
<path.../>和<classpath.../>共有子元素:
<dirset.../>指定系列目录(采用模式字符串) dir--指定根路径
|--<include name=“(可采用模式字符串)”.../>指定包含目录名为“”
|--<exclude name=“(可采用模式字符串)”.../>指定排除目录名为“”
<fileset.../>制定系列文件 (采用模式字符串) 属性 (必填)dir--基准路径 casesensitive--指定区分大小写,默认区分
<filelist.../>直接列出系列文件名的方式指定系列文件名 属性 (必填)dir--基准路径 files--多个文件列表,以 , 或空白隔开
id---指定唯一标识 refid---指定引用另一个元素
|--(可多个,可选)<file .../>指定文件列表 属性 name--一个文件列表名字
<pathelement.../>指定一个或多个目录或JAR文件 属性 path---多个目录或JAR文件之间以冒号(:)或分号(;)分开
location---指定一个目录和JAR文件
P.S. 获取属性值以${builddir}格式 $$表示普通字符$ $为特殊字符
<target.../>常用核心task
javac:编译一个或多个Java源文件,通常需要srcdir和destdir属性 用于指定源文件位置和编译后class文件保存位置
java:运行某个Java类 classname属性指定运行哪个类
jar:生成JAR包 destfile指定创建JAR包的文件名
sql:执行一条或多条SQL语句,通常需要driver、url、userid、password属性、src指定所需要的SQL脚本文件
echo:输出某个字符串
exec:执行操作系统的特定命令
copy、delete、move:复制、删除、移动文件或路径
mkdir:创建文件夹