原文地址:
http://tech.it168.com/j/2007-11-09/200711091344781.shtml
本文请勿转载!
Ant
是一个
Apache
基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将
Ant
应用到
Java
项目中,让它简化构建和部署操作。
一.
安装与配置
下载地址:
http://ant.apache.org/
,在本文中下载的是
1.7.0
版本。解压到某个目录(例如
E:"apache-ant-1.7.0
),即可使用。
添加系统环境变量:
ANT_HOME
,该变量指向
Ant
解压后的根目录,在此为
E:"apache-ant-1.7.0
。
安装与配置完毕后,读者可以测试一下
Ant
是否可用,首先进入
Ant
的
bin
目录,运行命令
ant –version
,若安装和配置成功,则会显示
Ant
版本信息,如下图所示:
由上可以看出,读者运行
Ant
的命令时,需要进入到
Ant
的
bin
目录,如何才能让系统自动找到
Ant
呢?这时需要读者在系统环境变量
path
中添加
Ant
的
bin
目录。设置完成后,我们就可以在任何目录(例如
C:"Documents and Settings"AmigoXie
目录)输入
Ant
的命令,来获得命令的运行结果。
二.
Ant
的关键元素
Ant
的构件文件是基于
XML
编写的,默认名称为
build.xml
。为了更清楚的了解
Ant
,在这里编写一个简单的
Ant
程序,用来展现
Ant
的功能,让读者对
Ant
有一个初步的了解。首先在
E
盘下建立一个
build.xml
文件,内容如下:
<?
xml version="1.0"
?>
<
project
name
="helloWorld">
<
target
name
="sayHelloWorld">
<
echo
message
="Hello,Amigo"/>
</
target
>
</
project
>
读者可以进入
E
盘,然后运行
ant sayHelloWorld
,可以看到如下的运行结果:
其中
sayHelloWorld
为需要执行的任务的名称。如果文件名不为
build.xml
,而为
hello.xml
时,读者运行同样的命令时,命令窗口会出现如下错误:
Buildfile: build.xml does not exist!
Build failed
由上面的命令的错误提示可以看出,
ant
命令默认寻找
build.xml
文件。若文件名为
hello.xml
时,读者还需要对命令做少许改变,改为:
ant –f hello.xml sayHelloWorld
、
ant –buildfile hello.xml sayHelloWorld
或
ant –file hello.xml sayHelloWorld
。
接下来开始向读者讲解本节的重点:
Ant
的关键元素
project
、
target
、
property
和
task
。
1.
project
元素
project
元素是
Ant
构件文件的根元素,
Ant
构件文件至少应该包含一个
project
元素,否则会发生错误。在每个
project
元素下,可包含多个
target
元素。接下来向读者展示一下
project
元素的各属性。
1
)
name
属性
用于指定
project
元素的名称。
2
)
default
属性
用于指定
project
默认执行时所执行的
target
的名称。
3
)
basedir
属性
用于指定基路径的位置。该属性没有指定时,使用
Ant
的构件文件的附目录作为基准目录。
下面给读者一个简单的例子来展示
project
的各元素的使用。修改
E:"build.xml
文件,修改后的内容如下:
<?
xml version="1.0"
?>
<
project
name
="projectStudy"
default
="sayBaseDir"
basedir
="E:"
apache-ant-1.7.0"
>
<
target
name
="sayBaseDir">
<
echo
message
="The base dir is: ${basedir}"/>
</
target
>
</
project
>
从上面的内容我们可以看出,在这里定义了
default
属性的值为
sayBaseDir
,即当运行
ant
命令时,若未指明执行的
target
时,默认执行的
target
的
sayBaseDir
,同时还定义了
basedir
属性的值为
E:"apache-ant-1.7.0
,进入
E
盘后运行
ant
命令,可看到运行的结果,如下图所示:
因为设定了
basedir
的值,所以
basedir
属性的值变成了读者设置的值。读者可以自行将
project
元素的
basedir
属性去掉后运行
ant
看看运行结果,此时
basedir
的值变成了
E:"
,即为
Ant
构件文件的父目录。
有的时候,读者可能有这种需求,即想得到某个
project
下所有的
target
的名称,读者可以通过在
ant
命令里加上
-proecthelp
来达到该目的。例如针对上述的例子我们运行
ant –projecthelp
,输出结果如下:
Buildfile: build.xml
Main targets:
Other targets:
sayBaseDir
Default target: sayBaseDir
2.
target
元素
它为
Ant
的基本执行单元,它可以包含一个或多个具体的任务。多个
target
可以存在相互依赖关系。它有如下属性:
1
)
name
属性
指定
target
元素的名称,这个属性在一个
project
元素中是唯一的。我们可以通过指定
target
元素的名称来指定某个
target
。
2
)
depends
属性
用于描述
target
之间的依赖关系,若与多个
target
存在依赖关系时,需要以“
,
”间隔。
Ant
会依照
depends
属性中
target
出现的顺序依次执行每个
target
。被依赖的
target
会先执行。
3
)
if
属性
用于验证指定的属性是否存在,若不存在,所在
target
将不会被执行。
4
)
unless
属性
该属性的功能与
if
属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在
target
将会被执行。
5
)
description
属性
该属性是关于
target
功能的简短描述和说明。
下面带领读者来看一个各属性综合使用的例子。修改
E:"build.xml
文件,修改后的内容如下:
<?
xml version="1.0"
?>
<
project
name
="targetStudy">
<
target
name
="targetA"
if
="ant.java.version">
<
echo
message
="Java Version: ${ant.java.version}"/>
</
target
>
<
target
name
="targetB"
depends
="targetA"
unless
="amigo">
<
description
>
a depend example!
</
description
>
<
echo
message
="The base dir is: ${basedir}"/>
</
target
>
</
project
>
进入
E
盘后运行
ant targetB
,可看到如下图所示的运行结果:
读者分析结果后可以看到,我们运行的是名为
targetB
的
target
,因该
target
依赖于
targetA
,所以
targetA
将首先被执行,同时因为系统安装了
java
环境,所以
ant.java.version
属性存在,执行了
targetA
这个
target
,输出信息:
[echo] Java Version: 1.5
,
targetA
执行完毕后,接着执行
targetB
,因为
amigo
不存在,而
unless
属性是在不存在时进入所在的
target
的,由此可知
targetB
得以执行,输出信息:
The base dir is: E:"
。
3.
property
元素
该元素可看作参量或者参数的定义,
project
的属性可以通过
property
元素来设定,也可在
Ant
之外设定。若要在外部引入某文件,例如
build.properties
文件,可以通过如下内容将其引入:
<property file=” build.properties”/>
property
元素可用作
task
的属性值。在
task
中是通过将属性名放在“
${
”和“
}
”之间,并放在
task
属性值的位置来实现的。
Ant
提供了一些内置的属性,它能得到的系统属性的列表与
Java
文档中
System.getPropertis()
方法得到的属性一致,这些系统属性可参考
sun
网站的说明。
同时,
Ant
还提供了一些它自己的内置属性,如下:
basedir
:
project
基目录的绝对路径,该属性在讲解
project
元素时有详细说明,不再赘述;
ant.file
:
buildfile
的绝对路径,如上面的各例子中,
ant.file
的值为
E:"build.xml
;
ant.version
:
Ant
的版本,在本文中,值为
1.7.0
;
ant.project.name
:当前指定的
project
的名字,即前文说到的
project
的
name
属性的值;
ant.java.version
:
Ant
检测到的
JDK
的版本,在上例运行结果中可看到为
1.5
。
下面让读者来看一个
property
元素使用的简单例子。修改
E:"build.xml
文件,内容如下:
<?
xml version="1.0"
?>
<
project
name
="propertyStudy"
default
="example">
<
property
name
="name"
value
="amigo"/>
<
property
name
="age"
value
="25"/>
<
target
name
="example">
<
echo
message
="name: ${name}, age: ${age}"/>
</
target
>
</
project
>
该例的运行结果如下图所示:
由此读者可以看出,通过如下两个语句:
<property name="name" value="amigo"/>
<property name="age" value="25"/>
我们设置了名为
name
和
age
的两个属性,这两个属性设置后,读者在下文中可以通过
${name}
和
${age}
分别取得这两个属性的值。
三.
Ant
的常用任务
在
Ant
工具中每一个任务封装了具体要执行的功能,是
Ant
工具的基本执行单位。在本小节中,主要引导读者来看下
Ant
的常用任务及其使用举例。
1.
copy
任务
该任务主要用来对文件和目录的复制功能。举例如下:
Eg1.
复制单个文件:
<copy file="file.txt" tofile="copy.txt"/>
Eg2.
对文件目录进行复制:
<copy todir="../newdir/dest_dir">
<fileset dir="src_dir"/>
</copy>
Eg3.
将文件复制到另外的目录:
<copy file="file.txt" todir="../other/dir"/>
2.
delete
任务
对文件或目录进行删除,举例如下:
Eg1.
删除某个文件:
<delete file="photo/amigo.jpg"/>
Eg2.
删除某个目录:
<delete dir="photo"/>
Eg3.
删除所有的备份目录或空目录:
<delete includeEmptyDirs="true">
<fileset dir="." includes="**/*.bak"/>
</delete>
3.
mkdir
任务
创建目录。
eg
:
<mkdir dir="build"/>
4.
move
任务
移动文件或目录,举例如下:
Eg1.
移动单个文件:
<move file="fromfile" tofile=”tofile”/>
Eg2.
移动单个文件到另一个目录:
<move file="fromfile" todir=”movedir”/>
font-siz
分享到:
相关推荐
### Ant教程详解 #### 一、Ant简介及安装配置 Ant是一个开源的、跨平台的构建工具,由Apache基金会维护。它主要用于Java项目的自动化构建和部署。Ant的强大之处在于其高度可配置性以及丰富的任务(task)集合,这些...
### ant 教程详解 #### 一、Ant简介与安装配置 **Ant** 是一个开源的、跨平台的 Java 构件工具,它被设计用于帮助软件开发者自动化构建过程中的重复任务,比如编译源代码、运行单元测试、打包应用程序等。Ant 使用...
通过阅读提供的"ant教程详解--javac,java,jar,war,delete,copy,mkdir...(转载).doc"文档和"ant.pdf",你可以深入理解这些任务的使用方法和实际应用场景,从而更好地将Ant应用于你的Java项目中。
"ant教程详解--javac,java,jar,war,delete,copy,mkdir....ziw"这则教程可能详细解析了ANT中与Java开发密切相关的任务,如编译源代码(javac)、运行Java程序(java)、创建JAR和WAR包、删除文件或目录(delete...
Ant教程是Java开发中不可或缺的一部分,它是一种基于XML的构建工具,用于自动化软件构建过程,如编译、打包、测试和部署。Ant以其灵活性和可扩展性而闻名,它允许开发者通过自定义任务来处理特定的构建需求。 Ant的...
### JUnit与Ant教程知识点详解 #### 一、JUnit简介 JUnit是一种开源的Java测试框架,主要用于编写可重复执行的测试。它属于xUnit架构的一部分,该架构为单元测试提供了通用的设计模式。JUnit的主要特点包括: 1. ...
通过阅读"ant指南"和"ant使用教程",你将深入理解Ant的工作原理,学会编写和执行Ant构建文件,从而提高Java项目的构建效率。不论你是新手还是经验丰富的开发者,这些资源都将为你的项目管理提供有力支持。
二、build.xml文件详解 Ant的所有构建指令都写在`build.xml`文件中。文件结构通常包括项目定义、属性、路径、任务和目标。 1. **项目定义**:以`<project>`标签开始,包含项目的属性,如名称、版本等。 ```xml ``...
### ant基础教程知识点详解 #### 一、Ant简介与基本概念 **Ant** 是一个流行的构建工具,主要用于Java项目的构建和部署。它采用XML来定义构建逻辑,这使得构建脚本更加直观且易于理解。 ##### **1.1 Ant 的概念**...
### Java Ant 入门教程详解 #### 一、Ant 的历史与起源 Ant 是 Apache 软件基金会下的一个开源项目,全称为 Another Neat Tool(另一种整洁的工具)。它首次发布于 1998 年,由 James Duncan Davidson 开发。Ant ...
### Java Ant 教程知识点详解 #### 一、Ant简介及优势 Ant 是 Apache 软件基金会 JAKARTA 目录下的一个子项目,主要用于自动化构建过程,特别是 Java 应用程序的构建。其主要优点包括: 1. **跨平台性**:由于 ...
### Ant入门知识点详解 #### 一、Ant简介与特点 **Ant**,全称为Another Neat Tool,是一款基于Java的构建工具,由James Duncan Davidson创建并命名。它主要用于将源代码和其他输入文件转换成可执行文件或可安装的...
1.8 Tomcat5启动流程与配置详解 1.9 HttpServlet详解 1.10 Ant使用入门 1.11 Maven Ant之间的比较 1.12 详解MANIFEST.MF文件 1.13 Maven入门--概念与实例 1.14 Subversion 1.15 jar war ear区别 1.16 如何在...
《Ant中文版教程详解》 Ant,全称为Apache Ant,是一种基于Java和XML的构建工具。它被设计用于自动化软件项目的构建过程,如编译、打包、测试等任务。Ant以其灵活性和可扩展性,成为了Java开发中的常用工具,尤其在...
通过阅读《ant详解.doc》和《ant.pdf》,你可以更详细地了解这些概念和实践方法,从而提升Ant的使用技能。Ant不仅适合小型项目,也是大型项目构建的强大工具,它通过简单的XML语法让构建过程变得有序且易于维护。...