`
srj2903
  • 浏览: 106442 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Ant基本使用指南

    博客分类:
  • ant
阅读更多

<!----><!----><!---->  <!---->

在学习 struts+spring+hibernate, 尤其是 Appfuse 的过程中大量涉及到 ant 的使用,因此我觉得有必要对 ant 做个比较深入的学习,以下是在学习过程中搜集的材料。比较详细,很适合没有接触过 ant 的初学者。

Ant 基本使用指南


1 Ant
是什么?

Apache Ant 是一个基于 Java 的生成工具。

生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本

2 下载、安装 Ant

安装 Ant

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

 

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

· bin 目录加入 PATH 环境变量。

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

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

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

2.2 运行 Ant

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

 

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

 

可以指定执行一个或多个 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

-Dproperty=value set property to value

Ant 命令行参考
从命令行调用 Ant 的语法如下所示:
ant [option [option...]] [target [target...]]
option := {-help
|-projecthelp
|-version
|-quiet
|-verbose
|-debug
|-emacs
|-logfile filename
|-logger classname
|-listener classname
|-buildfile filename
|-Dproperty=value
|-find filename}
语法元素说明如下:
-help
显示描述 Ant 命令及其选项的帮助信息。
-projecthelp
显示包含在构建文件中的、所有用户编写的帮助文档。即为各个 <target>
description 属性的文本,以及包含在 <description> 元素中的任何文
本。将有 description 属性的目标列为主目标( “Main target” ),没有此属
性的目标则列为子目标( “Subtarget” )。
-version
要求 Ant 显示其版本信息,然后退出。
-quiet
抑制并非由构建文件中的 echo 任务所产生的大多数消息。
-verbose
显示构建过程中每个操作的详细消息。此选项与 -debug 选项只能选其一。
-debug
显示 Ant 和任务开发人员已经标志为调试消息的消息。此选项与 -verbose
能选其一。
-emacs
对日志消息进行格式化,使它们能够很容易地由 Emacs shell 模式( shellmode
所解析;也就是说,打印任务事件,但并不缩排,在其之前也没有
[taskname]

-logfile filename
将日志输出重定向到指定文件。
-logger classname
指定一个类来处理 Ant 的日志记录。所指定的类必须实现了 org.apache.
tools.ant.BuildLogger
接口。
-listener classname
Ant 声明一个监听类,并增加到其监听者列表中。在 Ant IDE 或其他 Java
程序集成时,此选项非常有用。可以阅读第六章以了解有关监听者的更多信
息。必须将所指定的监听类编写为可以处理 Ant 的构建消息接发。
-buildfile filename
指定 Ant 需要处理的构建文件。默认的构建文件为 build.xml
-Dproperty=value
在命令行上定义一个特性名-值对。
-find filename
指定 Ant 应当处理的构建文件。与 -buildfile 选项不同,如果所指定文件在当
前目录中未找到, -find 就要求 Ant 在其父目录中再进行搜索。这种搜索会继
续在其祖先目录中进行,直至达到文件系统的根为止,在此如果文件还未找
到,则构建失败。
构建文件轮廓
下面是一个通用的构建文件,它很适合作为一个模板。构建文件包括 <project>
元素,以及其中嵌套的 <target> <property> <path> 元素。
<project default="all">
<property name="a.property" value="a value"/>
<property name="b.property" value="b value"/>
<path id="a.path">
<pathelement location="${java.home}/jre/lib/rt.jar"/>
</path>
<target name="all">
<javac srcdir=".">
<classpath refid="a.path"/>
</javac>
</target>
</project>

关于构建文件有几点需要记住:
所有构建文件都要有 <project> 元素,而且至少有一个 <target> 元素。
对于 <project> 元素的 default 属性并没有默认值。
构建文件并不一定要被命名为 build.xml 。不过 build.xml Ant 要搜索的默
认文件名。
每个构建文件只能有一个 <project> 元素。

 

 

例子

ant

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

ant -buildfile test.xml

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

ant -buildfile test.xml dist

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

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

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

 

3 编写 build.xml

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

 

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

 

3.1Projects

 

project 有下面的属性:

AttributeDescriptionRequired

name 项目名称 .No

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

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

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

 

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

 

3.2Targets

 

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

 

然而,应当注意到, Ant depends 属性只指定了 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 依赖于 B B 依赖于 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"/>

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

 

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

 

将你的 tstamp task 在一个所谓的初始化 target 是很好的做法,其他的 target 依赖这个初始化 target 。要确保初始化 target 是出现在其他 target 依赖表中的第一个 target 。在本手册中大多数的初始化 target 的名字是 "init"

 

target 有下面的属性:

AttributeDescriptionRequired

nametarget 的名字 Yes

depends 用逗号分隔的 target 的名字列表,也就是依赖表。 No

if 执行 target 所需要设定的属性名。 No

unless 执行 target 需要清除设定的属性名。 No

description 关于 target 功能的简短描述。 No

 

3.3Tasks

 

一个 task 是一段可执行的代码。

 

一个 task 可以有多个属性(如果你愿意的话,可以将其称之为变量)。属性只可能包含对 property 的引用。这些引用会在 task 执行前被解析。

 

下面是 Task 的一般构造形式:

<name attribute1="value1" attribute2="value2" ... />

这里 name task 的名字, attributeN 是属性名, valueN 是属性值。

 

有一套内置的( built-in task ,以及一些可选 task ,但你也可以编写自己的 task

 

所有的 task 都有一个 task 名字属性。 Ant 用属性值来产生日志信息。

 

可以给 task 赋一个 id 属性:

<taskname id="taskID" ... />

这里 taskname task 的名字,而 taskID 是这个 task 的唯一标识符。通过这个标识符,你可以在脚本中引用相应的 task 。例如,在脚本中你可以这样:

<script ... >

task1.setFoo("bar");

</script>

设定某个 task 实例的 foo 属性。在另一个 task 中(用 java 编写),你可以利用下面的语句存取相应的实例。

project.getReference("task1").

注意 1 :如果 task1 还没有运行,就不会被生效(例如:不设定属性),如果你在随后配置它,你所作的一切都会被覆盖。

 

注意 2 :未来的 Ant 版本可能不会兼容这里所提的属性,因为很有可能根本没有 task 实例,只有 proxies

 

3.4Properties

 

一个 project 可以有很多的 properties 。可以在 buildfile 中用 property task 来设定,或在 Ant 之外设定。一个 property 有一个名字和一个值。 property 可用于 task 的属性值。这是通过将属性名放在 "{" "}" 之间并放在属性值的位置来实现的。例如如果有一个 property builddir 的值是 "build" ,这个 property 就可用于属性值: {builddir}/classes 。这个值就可被解析为 build/classes

内置属性

 

如果你使用了 <property> task 定义了所有的系统属性, Ant 允许你使用这些属性。例如, {os.name} 对应操作系统的名字。

 

要想得到系统属性的列表可参考 the Javadoc of System.getProperties

 

除了 Java 的系统属性, Ant

分享到:
评论

相关推荐

    Ant基本使用指南--从入门到精通

    ### Ant基本使用指南——从入门到精通 #### 一、Ant简介 Apache Ant 是一个 Java 环境下的开源构建工具,它通过一系列预定义的任务来驱动构建过程,支持跨平台运行。Ant 以 XML 文件的形式来配置构建过程,使得...

    Ant基本使用指南, 好用

    在开始使用Ant之前,你需要先进行下载和安装。你可以从Apache官方网站获取Ant的.zip文件,然后将其解压缩到你选择的目录,例如`c:\ant1.3`。接着,你需要将`bin`目录添加到系统的PATH环境变量中,确保系统能够找到...

    Ant基本使用指南(入门教程)

    Apache Ant 是一个强大的Java项目...对于初学者,理解Ant的基本概念和XML语法是至关重要的,这将有助于构建出高效且易于维护的构建脚本。通过不断实践和学习,你可以掌握如何编写复杂的Ant脚本来满足不同项目的需求。

    ant工具使用指南ant工具使用指南

    本指南将深入探讨Ant工具的使用,帮助开发者高效地管理项目构建。 一、Ant概述 Ant是一个开源的Java构建工具,其设计灵感来源于Unix的Make工具。它通过XML配置文件(通常名为build.xml)来定义任务和目标,使得构建...

    Ant使用指南.rar

    这个“Ant使用指南”涵盖了Ant的基本概念、配置、任务和实战应用,旨在帮助开发者更好地理解和使用Ant。 1. **Ant简介** - Ant是一个基于Java的构建工具,其设计目标是简化Java项目的构建过程,通过XML描述构建...

    ant使用指南及使用教程

    1. Ant基本概念: - 构建文件:Ant的核心是构建文件,通常命名为`build.xml`,它使用XML语法定义了一系列目标(targets)和任务(tasks)。 - 目标:目标是一系列任务的集合,代表一个具体的构建阶段,如清理、...

    ANT使用指南ANT使用指南

    ### ANT使用指南详解 #### 一、导言 Apache Ant 是一款开源的Java构建工具,类似于传统的Unix Make工具。Ant采用XML格式来定义构建过程,提供了丰富的任务(task)集合,适用于自动化编译、测试和部署Java应用程序。...

    ant使用手册ANT使用指南

    ### ant使用手册ANT使用指南 #### 一、引言 Ant是一种流行的开源构建工具,用于自动化软件项目的构建过程。尤其适用于Java项目,但它也可以用于非Java项目。由于Ant的灵活性和易用性,它在Java开发者社区中迅速...

    ant1.7使用手册指南

    通过深入学习"ant1.7使用手册指南",开发者不仅可以熟练掌握Ant的使用,还能优化构建流程,提升项目开发的效率。对于Java开发者而言,Ant是必备的工具之一,尤其在处理复杂的构建逻辑时,其灵活性和可扩展性显得尤为...

    Ant参考教程,Ant使用指南,Ant全攻略

    "Ant使用指南.pdf"和"Ant.pdf"可能是更全面的Ant使用手册,包含详细的API文档和使用案例,帮助开发者深入理解Ant的各个方面。 总的来说,Ant是一个强大的工具,通过学习以上文档,初学者能够掌握Ant的基础和进阶...

    Apache Ant 使用指南

    1. **Ant基本概念**:了解Ant的基本结构,包括项目(Project)、目标(Target)、任务(Task)和属性(Property)。项目是构建的顶级容器,目标是构建步骤,任务是执行的具体动作,属性则是用于存储值并能在整个构建...

    Ant介绍以及基本使用指南

    ### Ant介绍及基本使用指南 #### 一、Ant概述 Ant是Apache基金会下的一个开源项目,主要用于构建Java项目。作为一种跨平台的构建工具,Ant能够帮助开发者自动化一系列重复且耗时的任务,例如编译源代码、打包应用...

    ant 使用指南-ant入门

    1. **Ant的基本结构** - **build.xml**:Ant的核心是构建文件,它定义了一系列的构建任务和目标。每个任务都是一个XML元素,例如`&lt;target&gt;`,而目标之间可以通过依赖关系进行组织。 - **属性(Properties)**:Ant...

    Ant权威指南(ant 学习)

    《Ant权威指南》是一本深度解析Apache Ant...通过学习《Ant权威指南》,开发者可以全面掌握Ant的使用,提升构建效率,确保项目的稳定和可维护性。无论你是初学者还是经验丰富的开发者,这本书都将为你提供宝贵的指导。

    ant使用指南.rar

    通过“Ant使用指南”,你可以逐步学习如何设置和运行Ant项目,掌握如何编写和维护构建文件,以及如何利用Ant实现项目的自动化构建和部署。无论是初学者还是经验丰富的开发人员,都能从中获益,提升项目管理效率。

    ant使用指南(中文)

    本指南将详细介绍Ant的基本概念、安装与配置、任务定义、属性处理、文件操作以及如何与其他工具集成,旨在帮助Java开发者更高效地管理项目构建流程。 ### 一、Ant简介 Ant是一个基于XML的构建工具,它的主要任务是...

    Ant使用指南(适合初学者)

    本指南将针对初学者,详细介绍Ant的基本概念、安装、配置以及常用任务的使用。 一、Ant简介 Ant的设计理念是“简单就是美”。在Java开发中,当项目变得复杂时,手动管理编译、测试和部署等过程会变得繁琐,Ant则能...

    Ant权威指南(PDF电子书)

    《Ant权威指南》不仅是学习Ant的有效教材,而且书中内容覆盖了Ant的安装、配置以及使用方法,适合初学者和有一定基础的用户。全书由前言开始,首先介绍Ant的基础知识,如文件和目录的处理,Ant的构建文件概念以及...

Global site tag (gtag.js) - Google Analytics