关于ant的请教

做java才短短一段时间,基本上是基于myeclipse开发
学习了一些大牛的源码发现很多人的编译是靠ANT来的
由于一直使用myeclipse中的编译功能,那位给详细解释一下使用ant的意义及好处呢?

Another Neat Tool(Ant)是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。因为Ant的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。类似于make的工具本质上是基于 shell(语言)的:他们计算依赖关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)。这就意味着你可以很容易地通过使用OS特有的或编写新的(命令)程序扩展该工具;然而,这也意味着你将自己限制在了特定的OS,或特定的OS类型上,如Unix。Ant就不同了。与基于shell命令的扩展模式不同,Ant用Java的类来扩展。(用户)不必编写shell命令,配置文件是基于XML的,通过调用target树,就可执行各种task。每个task由实现了一个实现了特定Task接口的对象来运行。

  Ant支持一些可选task,一个可选task一般需要额外的库才能工作。可选task与Ant的内置task分开,单独打包。这个可选包可以从你下载 Ant的同一个地方下载。ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。Ant是Apache提供给Java开发人员的构建工具,它可以在Windows OS和Unix OS下运行,它不仅开放源码并且还是一个非常好用的工具。Ant是Apache Jakarta中一个很好用的Java开发工具,Ant配置文件采用XML文档编写,所以Java程序员对其语法相当熟悉,Ant是专用于Java项目平台,能够用纯Java来开发,它能够运行于Java安装的平台,即体现了它的跨平台功能。它的缺点显示执行结果只能是DOS字符界面,不能进行复杂的 java程序开发。

可能你会觉得使用ant,在命令界面干活,没有在Windows上的图形界面的IDE里来的舒服,那为什么还要用ant呢?

我要告诉你的是,Java本来就是在unix系的OS上诞生的,其编译、打包、部署等的方式都更接近unix系的OS的操作习惯。所以这是习惯问题。
(See Also:http://www.jdon.com/jivejdon/forum/messageList.shtml?thread=31253&message=23119604#23119604)

ant等build tool的高度可定制性性,自动化构建,便于扩展,便于移植,平台无关等特性,都是ide所不能比的。

最后我想对你说的是,如果你是刚开始学ant,建议你不必继续下去了,开始是去学maven吧

maven官网:maven.apache.org

Maven中文(maven社区支持)
http://groups.google.com/group/maven-zh

别老拿ant来跟maven比,别老拿ant的思维来用maven,它们根本不是一个级别上的东西!
http://groups.google.com/group/maven-zh/browse_frm/thread/2d2695ec64872670

为什么要用Maven?
http://juvenshun.javaeye.com/blog/250855

多一些建议 我就多一些充实
感谢dearshor 给我的建议

如你对maven感兴趣、想学maven,欢迎加入上述maven社区,在那里你可以获得maven的各种知识与实践经验。
该社区的发起人目前受雇于Sonatype公司,致力于maven相关工具的产品开发(maven eclipse integration(m2eclipse)、nexus,etc.),并主持翻译maven著作《Maven: The Definitive Guide》,最近还在撰写《maven最佳实践系列文章》。他是一个积极的布道者,为maven在国内的普及无私贡献着自己的力量。
[该贴被dearshor于2009-01-04 20:09修改过]