什么是ant?
构建工具。
为什么ant?
我们会发现,除了编写源代码,我们每天有相当一部分时间花在了编译、运行单元测试、生成文档、打包和部署等烦琐且不起眼的工作上,这就是构建。 如果我们现在还手工这样做,那成本也太高了,于是有人用软件的方法让这一系列工作完全自动化,使得软件的构建可以像全自动流水线一样,只需要一条简单的命令,所有烦琐的步骤都能够自动完成,很快就能得到最终结果。
Ant的优点
跨平台
使用简单
Ant 及其替代方案
Maven 据说是声明的 而ant是过程是的。
安装
下载解压配置环境变量即可。
验证安装
在dos界面运行ant -version 查看版本。
解析一个简单的build.xml 了解下构建文件的轮廓
<projectname="mytest" basedir="." default>
Name -------- 你取得名字尽量和项目名一致
Basedir -------- 工作目录
Default -------- 默认要做的事情。
<propertty name = "src"value="${basedir}/src" />
声明了一个名字叫src的变量 并赋初始值为${basedir}/src.
<targetname="create" >
<mkdirdir="${build}" />
</target>
创建了一个方法,再这个方法中创建了一个文件夹。
</project>
常用的target
1. 输出信息
<echo message="XXXXXXXX"/>
<echo>XXXXXXXXX</echo>
2. Copy文件
<copy file="myfile.txt"todir="d:/test/mya.txt" />
3. Copy目录
<copytodir="d:/test">
<fileset dir="${src}">
</fileset>
</copy>
4. 创建删除一个文件
<mkdirdir="d://show.txt"/>
<delete dir="d://show.txt"/>
更多target 请参考手册
ant原理?
每一个标签都引用了一个类。
package org.apache.tools.ant.taskdefs;
比如<mkdir dir=”d:/123”/>
Ant.jar中必然包涵一个mkdir的java类
而且其必然有一个dir的属性。
具体解析<mkdir dir = "d:/123" />
解析到了mkdir就根据属性文件mkdir=org.apache.tools.ant.taskdefs.Mkdir
通过反射创建org.apache.tools.ant.taskdefs.Mkdir对象
获取其属性比如protected File dir;
根据属性设置方法setDir(File dir);
最后用其父类调用 execute()方法。