现在的位置: 首页 > 综合 > 正文

Ant全攻略

2013年10月07日 ⁄ 综合 ⁄ 共 3396字 ⁄ 字号 评论关闭

Ant全攻略

作者: 未知 来源: JR 日期: 2006-12-04,08:25

1  Ant是什么?.... 1

2 下载、安装Ant.. 2

2.1 在你运行Ant之前需要做一些配置工作。... 2

2.2 运行Ant. 2

3 编写build.xml.. 3

3.1 Projects. 3

3.2 Targets. 3

3.3 Tasks. 4

3.4 Properties. 5

3.5 Path-like Structures. 6

4 Ant中的内置任务.... 8

4.1 FileDirectory)类... 8

4.1.1 Mkdir. 8

4.1.2 Copy. 8

A. 拷贝单个的文件:... 9

B. 拷贝单个的文件到指定目录下... 9

C. 拷贝一个目录到另外一个目录下... 9

D. 拷贝一批文件到指定目录下... 9

E. 拷贝一批文件到指定目录下,将文件名后增加。Bak后缀... 9

F. 拷贝一组文件到指定目录下,替换其中的@标签@内容... 9

4.1.3 Delete. 10

A. 删除一个文件... 10

B. 删除指定目录及其子目录... 10

C. 删除指定的一组文件... 10

D. 删除指定目录及其子目录,包括他自己... 10

4.1.4 Move. 10

A. 移动或重命名一个文件... 10

B. 移动或重命名一个文件到另一个文件夹下面... 11

C. 将一个目录移到另外一个目录下... 11

D. 将一组文件移动到另外的目录下... 11

E. 移动文件过程中增加。Bak后缀... 11

 

1  Ant是什么?

Ant是一种基于JavaXMLbuild工具。

2 下载、安装Ant

安装Ant

下载.zip文件,解压缩到c:/ant1.3(后面引用为%ANT_HOME%)

2.1 在你运行Ant之前需要做一些配置工作。

bin目录加入PATH环境变量。

设定ANT_HOME环境变量,指向你安装Ant的目录。在一些OS上,Ant的脚本可以猜测ANT_HOMEUnixWindos NT/2000)-但最好不要依赖这一特性。

可选地,设定JAVA_HOME环境变量(参考下面的高级小节),该变量应该指向你安装JDK的目录。

注意:不要将Antant.jar文件放到JDK/JRElib/ext目录下。Ant是个应用程序,而lib/ext目录是为JDK扩展使用的(如JCEJSSE扩展)。而且通过扩展装入的类会有安全方面的限制。

2.2 运行Ant

运行Ant非常简单,当你正确地安装Ant后,只要输入ant就可以了。

n 没有指定任何参数时,Ant会在当前目录下查询build.xml文件。如果找到了就用该文件作为buildfile。如果你用 -find 选项。Ant就会在上级目录中寻找buildfile,直至到达文件系统的根。要想让Ant使用其他的buildfile,可以用参数 -buildfile file,这里file指定了你想使用的buildfile

n 可以指定执行一个或多个target。当省略target时,Ant使用标签<project>default属性所指定的target

命令行选项总结:

ant [options] [target [target2 [target3] ...]]

Options:

-help print this message

-projecthelp print project help information

-version print the version information and exit

-quiet be extra quiet

-verbose be extra verbose

-debug print debugging information

-emacs produce logging information without adornments

-logfile file use given file for log output

-logger classname the class that is to perform logging

-listener classname add an instance of class as a project listener

-buildfile file use specified buildfile

-find file search for buildfile towards the root of the filesystem and use the first one found

例子

ant

使用当前目录下的build.xml运行Ant,执行缺省的target

ant -buildfile test.xml

使用当前目录下的test.xml运行Ant,执行缺省的target

ant -buildfile test.xml dist

使用当前目录下的test.xml运行Ant,执行一个叫做disttarget

ant -buildfile test.xml -Dbuild=build/classes dist

使用当前目录下的test.xml运行Ant,执行一个叫做disttarget,并设定build属性的值为build/classes

3 编写build.xml

Antbuildfile是用XML写的。每个buildfile含有一个project

buildfile中每个task元素可以有一个id属性,可以用这个id值引用指定的任务。这个值必须是唯一的。(详情请参考下面的Task小节)

3.1 Projects

project有下面的属性:

Attribute Description Required

name 项目名称. No

default 当没有指定target时使用的缺省target Yes

basedir 用于计算所有其他路径的基路径。该属性可以被basedir property覆盖。当覆盖时,该属性被忽略。如果属性和basedir property都没有设定,就使用buildfile文件的父目录。 No

项目的描述以一个顶级的<description>元素的形式出现(参看description小节)。

一个项目可以定义一个或多个target。一个target是一系列你想要执行的。执行Ant时,你可以选择执行那个target。当没有给定target时,使用projectdefault属性所确定的target

3.2 Targets

一个target可以依赖于其他的target。例如,你可能会有一个target用于编译程序,一个target用于生成可执行文件。你在生成可执行文件之前必须先编译通过,所以生成可执行文件的target依赖于编译targetAnt会处理这种依赖关系。

然而,应当注意到,Antdepends属性只指定了target应该被执行的顺序-如果被依赖的target无法运行,这种depends对于指定了依赖关系的target就没有影响。

Ant会依照depends属性中target出现的顺序(从左到右)依次执行每个target。然而,要记住的是只要某个target依赖于一个target,后者就会被先执行。

<target name="A"/>

<target name="B" depends="A"/>

<target name="C" depends="B"/>

<target name="D" depends="C,B,A"/>

假定我们要执行target D。从它的依赖属性来看,你可能认为先执行C,然后B,最后A被执行。错了,C依赖于BB依赖于A,所以先执行A,然后B,然后C,最后D被执行。

一个target只能被执行一次,即时有多个target依赖于它(看上面的例子)。

如果(或如果不)某些属性被设定,才执行某个target。这样,允许根据系统的状态(java version, OS, 命令行属性定义等等)来更好地控制build的过程。要想让一个target这样做,你就应该在target元素中,加入if(或unless)属性,带上target因该有所判断的属性。例如:

<target name="build-module-A" if="module-A-present"/>

<target name="build-own-fake-module-A" unless="module-A-present"/>

如果没有ifunless属性,target总会被执行。

可选的description属性可用来提供关于target的一行描述,这些描述可由-projecthelp命令行选项输出。

抱歉!评论已关闭.