Ant指南
2008-01-05 18:46:25 来源:WEB开发网核心提示:目录1. Ant是什么?2. 安装Ant3. 运行Ant4. 编写build.xml5. 内置task(internet)6. EAR task(internet)7. WAR task(internet)8. JUnit task(internet)1. Ant是什么? Ant是一种基于java的build工具,理论
目录
1. Ant是什么?
2. 安装Ant
3. 运行Ant
4. 编写build.xml
5. 内置task(internet)
6. EAR task(internet)
7. WAR task(internet)
8. JUnit task(internet)
1. Ant是什么?
Ant是一种基于java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。2. 安装Ant
既然我们已经有了make, gnumake, nmake, jam以及其他的build工具为什么还要要一种新的build工具呢?因为Ant的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。类似于make的工具本质上是基于shell(语言)的:他们计算依靠关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)。这就意味着你可以很轻易地通过使用OS特有的或编写新的(命令)程序扩展该工具;然而,这也意味着你将自己限制在了特定的OS,或特定的OS类型上,如Unix。
Makefile也很可恶。任何使用过他们的人都碰到过可恶的tab问题。Ant的原作者经常这样问自己:“是否我的命令不执行只是因为在我的tab前有一个空格?!!”。类似于jam的工具很好地处理了这类问题,但是(用户)必须记住和使用一种新的格式。
Ant就不同了。与基于shell命令的扩展模式不同,Ant用Java的类来扩展。(用户)不必编写shell命令,配置文件是基于XML的,通过调用target树,就可执行各种task。每个task由实现了一个实现了特定Task接口的对象来运行。(假如你对Ant一点概念都没有的话,可能看不懂这一节,没有关系,后面会对target,task做具体的介绍。你假如没有太多的时间甚至可以略过这一节,然后再回来浏览一下这里的介绍,那时你就会看懂了。同样,假如你对make之类的工具不熟悉也没关系,下面的介绍根本不会用到make中的概念。)
必须承认,这样做,在构造shell命令时会失去一些特有的表达能力。如`find . -name foo -exec rm {}`,但却给了你跨平台的能力-你可以在任何地方工作。假如你真的需要执行一些shell命令,Ant有一个<exec> task,这个task答应执行特定OS上的命令。
返回
由于Ant是一个Open Source的软件,所以有两种安装Ant的方式,一种是用已编译好的binary 文件安装Ant,另一种是用源代码自己build Ant。
binary 形式的Ant可以从http://jakarta.apache.org/builds/ant/release/v1.4.1/bin下载。假如你希望你能自己编译Ant,则可从 http://jakarta.apache.org/builds/ant/release/v1.4.1/src。注重所列出的连接都是最新发行版的Ant。假如你读到此文时,发现已经有了更新的版本,那么请用新版本。假如你是一个疯狂的技术追求者,你也可以从Ant CVS repository下载最新版本的Ant。
系统需求
要想自己build Ant。你需要一个JAXP兼容的XML解析器(parser)放在你的CLASSPATH系统变量中。
binary 形式的Ant包括最新版的Apache Crimson XML解析器。你可以从http://java.sun.com/xml/ 得到更多的关于JAXP的信息。假如你希望使用其他的JAXP兼容的解析器。你要从Ant的lib目录中删掉jaxp.jar以及crimson.jar。然后你可将你心爱的解析器的jar文件放到Ant的lib目录中或放在你的CLASSPATH系统变量中。
对于当前版本的Ant,需要你的系统中有JDK,1.1版或更高。未来的Ant版本会要求使用JDK 1.2或更高版本。
安装Ant
binary 版的Ant包括三个目录:bin, docs 和lib。只有bin和lib目录是运行Ant所需的。要想安装Ant,选择一个目录并将发行版的文件拷贝到该目录下。这个目录被称作ANT_HOME。
在你运行Ant之前需要做一些配置工作。
注重:不要将Ant的ant.jar文件放到JDK/JRE的lib/ext目录下。Ant是个应用程序,而lib/ext目录是为JDK扩展使用的(如JCE,JSSE扩展)。而且通过扩展装入的类会有安全方面的限制。
- 将bin目录加入PATH环境变量。
- 设定ANT_HOME环境变量,指向你安装Ant的目录。在一些OS上,Ant的脚本可以猜测ANT_HOME(Unix和Windos NT/2000)-但最好不要依靠这一特性。
- 可选地,设定JAVA_HOME环境变量(参考下面的高级小节),该变量应该指向你安装JDK的目录。
可选Task
Ant支持一些可选task。一个可选task一般需要额外的库才能工作。可选task与Ant的内置task分开,单独打包。这个可选包可以从你下载Ant的同一个地方下载。目前包含可选task的jar文件名叫jakarta-ant-1.4.1-optional.jar。这个jar文件应该放到Ant安装目录的lib目录下。
更多精彩
赞助商链接