Ant是一个基于Java的编译工具。在功能上类似于make,但克服了make的缺点。
为什么在拥有make, gnumake, nmake, jam这些编译工具后,还要产生一个Ant呢?因为这些编译工具都有一定的限制。Ant的最初开发者在开发跨平台的应用时,发现以前的那些开发工具都有一定的限制。例如make工具,它判断条件并执行命令,最终实现编译。这样做的好处是:针对特定的平台(如unix),可以容易地使用和扩展make工具;但同时,这也意味着,你的makefiles被限制在固定的操作系统下,如只能用于你目前正在使用的unix。
同时,makefiles也有一些先天的缺陷。好多人都会遇到恐怖的tab问题。Ant的最初开发者多次说“只是因为我在tab前面加了一个空格,所以我的命令不能执行!”。一些工具一定程度上解决了这个问题,但仍存在其它的格式问题。
Ant与那些基于命令的工具不同,它是由java类扩展的。不用编写shell命令文件,而是编写XML格式的文件,形成由多个任务(task)组成的目标(target)树。每个任务都是通过一个实现指定接口的java类来运行。
Ant缺少一些直接执行shell命令的能力,如’find . -name foo -exec rm {}’,但它给用户提供了跨平台的能力,可以在任何地方工作。实际上,Ant也提供了执行基于操作系统的命令的机制(如任务)。
目前,在Apache上开发和使用Ant的人已经形成了一个强大的群体,而在此发展道路上,Ant开发者也已经对该工具做了许多改进。人们现在使用它来构建各种形式的工程,从很小的应用到极其庞大的J2EE应用都包括在内。
Ant官方网站:http://ant.apache.org 。