- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Apache_Ant_中文手冊
Apache Ant 中文手册
引言
Apache Ant是一个基于Java的编译工具。它从功能上类似于make,但它以克服了make的缺点。
为什么在make, gnumake, nmake, jam这些编译工具后,还要产生一个Ant呢?因为这些编译工具都有一定的限制。Ant的最初开发者在开发跨平台的应用时,发现以前的那些开发工具都有一定的限制。例如make工具,它是基于Shell的,它判断一系列的条件,并像在shell下面那样执行编译命令,这样做的好处的:针对特定的平台(如unix),可以容易的利用这些工具做编译;但同时,这也意味着,你的编译限制在固定的操作系统下,如只能用于unix。
同时,Make文件也有一些先天的缺陷。好多人都会遇到恐怖的tab问题。Ant的最初开发者多次说“我的命令不能执行因为我在tab前面加了一个空格!”。一些工具如Jam一定程序上解决了这个问题,但仍有其它的格式问题。
Ant与从基于命令的那些扩展开来的那些工具不同,Ant是由java类扩展的。不用编写shell命令,而是配置基于XML的文件,形成多个任务的目标配置树。每一个任务都是通过一个实现了一个规定接口的java类来运行的。
ant缺少了一些直接执行shell命令的能力,如find . -name foo -exec rm {},但它给用户提供了跨平台的能力,可以在任何地方工作。实际上,Ant也提供了命令execute用来执行shell命令,这就是它的exec任务,它允许执行基于操作系统的命令。
安装Ant
下载Ant。Ant有两个版本,二进制版本和原代码版本。
要编译和使用Ant,你必须要有一个兼容JAXP的XML解析器。
二进制版本中自己带有了必威体育精装版的Apache Xerces2 XML解析器。如果你想用不同的兼容JAXP的解析器,你可以移去Ant库目录下的xercesImpl.jar和xml-apis.jar两个文件。你可以要用的解析器放到Ant的库目录下,也可以把jars文件放到系统的类路径中。
在Ant的当前版本中,还需要安装JDK。下面的二进制片版本的安装后的目录结构。
ant 安装目录
ant/bin 包含了运行脚本
ant/lib ant运行所需的类库
ant/docs 文档
ant/etc 一些配置,如何通过任务的xml输出建立详细的报告,
移动编译后的文件,忽略错误警告
在运行前还要做一些设置:
1) 在path路径中加入ant/bin目录;
2) 设置ANT_HOME为安装目录;
3) 通常还要设置JAVA_HOME为JAVA的安装路径。
例如下:
set ANT_HOME=c:\ant
set JAVA_HOME=c:\jdk1.5.1
set PATH=%PATH%;%ANT_HOME%\bin
使用Ant
1 写一个简单的编译文件
Ant的编译文件是写成XML格式的,每一个编译文件包含一个project和至少一个
target。 Targets包含了一些task元素。每一个task元素可以有一个id 属性
(attribute)可以被其它的引用。
2 Projects
一个projext可以有如下的属性attribute:
attribute 说明 是否必须 name 项目名称 No default 当没有target支持时,缺省使用的target Yes. basedir 基目录,其它的目录都是相对于此. 这个attribute可以被basedir property 覆盖。当basedir property设置后,basedir attribute就不起作用了。如果两者都没有设置,则buildfile本身的父目录作为基目录。 No
根据需要,还可以设定项目的说明,在description元素中。
第一个project可以有一个或多个targets。一个target就是一系列的你要执行的任务组。在运行Ant时,
你可以选择哪一个任务组被执行。如果没有给出执行的任务组,则project缺省的任务组被执行。
3 Targets
target可能依赖于其它的target而存在。你可能用一个target用来编译,用
另一个target且用来布署。只有编译完成后,布署才可执行,这样布署就
依赖于编译。
要说明的是,ant的depends attribute只是规定了target之间的前后执行
关系,并不表示真正的依赖性。
依赖
文档评论(0)