我自己的理解是,Ant就像Linux上的makefile一样,可以编译软件项目、生成文档、单元测试、打包和部署。 但是,与makefile不同。 makefile是基于shell的构建工具,而Ant是一种基于Java的构建工具,是一种基于XML的创作格式,可以轻松地使用Java语言进行扩展。
一.安装Ant
1、先将Ant解压缩到一个目录,如果解压缩到D:ant
2、设置环境变量
set ANT_HOME=d:ant
设置路径=% path %; %ANT_HOME%yxdhd
在cmd模式下输入ant-version回车,可以看到正确配置了输出结果。
二.使用Ant
Ant构建文件是以XML格式编写的,每个构建文件都包含一个项目和至少一个默认目标。
编码=' utf-8 '?
default='jar' basedir='.'
jarfile=' $ { basedir }/operation.jar '
1、项目
项目具有三个属性name、default和basedir
名称:项目的名称
default :运行build文件时的默认目标
Basedir :生成项目的根目录。 如果未设置此选项,则缺省情况下目录与build文件相同
2、Target
一个Target可以依赖于多个其他Target,
实行b必须先实行a
Target属性: name、depends、if、unless、description
名称: target的名称
Depends :运行当前目标时依赖的目标
If :必须设置此属性的名称,以便当前目标可以运行
if='file'/
Unless :不能设置此属性的名称,以便当前目标可以运行
unless='file'/
说明:当前目标的说明
3、Tasks
执行具体需求的任务有很多,例如WAR、EAR、JAVAC和JAVA
JAR,COPY,COPYDIR,COPYFILE,MKDIR,MOVE,DELETE,ECHO,EXEC,
UNZIP、ZIP、TAR、UNJAR、UNTAR、UNWAR、SCP、FTP、TELNET、
等等,以下是每个任务的属性介绍。
(1) javac :编译Java源文件
Srcdir:Java文件的目录
Destdir:Class文件的保存目录
包含:要包含的文件
Excludes :不包含的文件
Classpath :编译时必须引用的Classpath
调试:编译时是否包含调试信息
estdir=' $ { build } ' class path=' XYZ.jar '
debug='on '
/
)4)将War )文件打包为War文件
Destfile :要创建的war文件名
Webxml:web.xml文件的路径和文件名
Basedir :文件的源
包含:要包含的文件
Excludes :不包含的文件
webxml='src/metadata/myapp.xml '
prefix='images'/
) Ear )将文件打包为Ear文件
Destfile :要创建的ear文件名
app XML:meta-INF/application.XML文件的路径和文件名
Basedir :文件的源
包含:要包含的文件
Excludes :不包含的文件
app XML=' $ { src.dir }/metadata/application.XML '
includes='*.jar,*.war'/
(6)创建Mkdir )目录
dir='${dist}'/
(7)删除文件或文件夹及其包含的文件
File :要删除的文件名
Dir :要删除的目录
file='/lib/ant.jar'/
dir='lib'/
includes='**/*.bak'/
4、属性
一个项目可以有多个Property,可以在build文件中使用,也可以在Ant命令中使用
(1)在构建文件中
位置=' build ' /
)2)在Ant命令中,使用选项为-Dproperty=value
位置=' build ' /
运行Ant命令:如果antd build=aa,则位置值为aa
设置属性的六种方法
(1) name、value的属性设定
value='dist'/
(2)基于name、refid的属性设定
(3)通过file、url、resource属性进行设定,foo.properties是键-值对的属性文件
resource='foo.properties'/
(4)通过环境属性的设定,获取环境变量
三.执行Ant
ant [ options ] [ target [ target2[ target3] ]
. ]
Options:
-帮助、
- h打印this消息
-项目帮助,
-打印项目帮助信息
- versionprinttheversioninformationandexit
- diagnosticsprintinformationthatmightbehelpfulto
诊断或报告探测器。
-quiet,
- qbe额外队列
-verbose,
-vbe extra verbose
-调试、
- d打印调试信息
-emacs,
- eproducelogginginformationwithoutadornments
-里布
specifiesapathtosearchforjarsandclasses
-罗格菲尔
use given file for log
-l ' '
-罗杰
theclasswhichistoperformlogging
-李斯特
add an
instanceofclassasaprojectlistener
- noinputdonotallowinteractiveinput
-构建文件
用户导向构建文件
-file ' '
-f ' '
-D=use value for given property
-keep-going,
- kexecutealltargetsthatdonotdepend
onfailedtarget(s )。
-属性文件
loadallpropertiesfromfilewith-d
属性标记优先级
-输入处理程序
the class
which will handle输入请求
-散热片
(s ) earchforbuildfiletowardstherootof
-sthe filesystem and use it
- nicenumberanicenessvalueforthemainthread :
1 (低压) to10 )高压; 5 is the default
- nouserlibrunantwithoutusingthejarfilesfrom $ { user.home }/. ant/lib
- noclasspathrunantwithoutusingclasspath
例如ant -buildfile test.xml
-Dbuild=build/classes dist