在大的代码项目里,编译、打包、测试等操作会变得非常复杂,而且这些操作是一个重复的过程。在unix/linux平台下,使用c/c++语言的代码项目可以借助make脚本的帮助来批量完成这些工作。针对具有与平台无关性的Java项目,Ant就是用于自动化完成项目编译、打包、测试等工作的流程脚本引擎工具。
Ant是由Apache基金会资助的一种基于Java的编译工具。最初的创始人James Duncan Davidson将这个工具命名为“another neat tool”(另一个整洁的工具),Ant就是其英文全文的首字母缩写。Ant的功能类似于unix/linux下C的make,通过定义生成文件之间的依赖关系,然后执行命令实现的。这一过程与程序员自己在shell下敲入命令没有多大区别。make依赖于特定的操作系统,然而,与make不同,Ant使用具有跨平台的Java语言。在ANt的帮助下,能够编写单个生成文件,这些文件在任何平台上都一致的操作。这也得益于Ant本身也是使用java语言实现,此亦为Ant的最大优势。
Ant的脚本(默认文件名为build.xml)是基于XML的,通过调用目标(target)树,执行各种任务,每个任务由一个实现了特定接口的对象来运行。对于一个一般的项目可能有以下任务:
1)usage:打印本地脚本的帮助信息。
2)clean<--init:清空初始化环境。
3)javadoc<--build<--init:生成Javadoc。
4)jar<--build<--init:生成jar。
5)all<--jar +javadoc <-- build <--init:完成以上所有任务。
通常多个人物之间又包含一定的依赖关系。如把整个应用打包任务依赖于编译任务,而编译任务又依赖于整个环境的初始化任务等等。