ANT 学习笔记一(转载)

Apache Ant是一个基于Java的构建工具,起初是Tomcat的内部组件,2000年7月发布首个独立版本。Ant的构建文件使用XML编写,包含project和target元素,default属性指定默认目标。目标通过depends属性定义执行顺序。属性分为预定义和自定义,可通过-D选项在命令行设置。Ant支持编译Java代码、创建JAR文件、目录操作、文件和目录的复制、删除、创建和解压缩,以及文件中的文本替换。此外,Ant可以使用通配符进行模式匹配,选择器进行更细粒度的文件选择,并通过ant任务调用其他构建文件。Ant还支持与CVS知识库的集成,方便源代码控制。通过继承Task类并重写execute方法,可以创建自定义任务。
摘要由CSDN通过智能技术生成

Apache Ant学习笔记之一

©原作者:Matt Chapman 

•Apache Ant源缘及目的

   Apache Ant 是一个基于 Java 生成(在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式)工具
   
最初的创始人 James Duncan Davidson 
   Ant
another neat tool
   Ant 
最初是 Tomcat 的一个内部组件
   
其第一个独立版本于 2000  7 月发布。

   它是为了解决:

 随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本,这就变得更加重要了。

Ant工具概要

    Ant 的生成文件是用 XML 编写的。每个生成文件由单个 project 元素组成,该元素又包含一个或多个 target 元素。
    
顶级 project 元素需要包含一个 default 属性,如果在 Ant 被调用时没有指定目标,这个属性将指定要执行的目标。
    target
是生成过程中已定义的一个步骤,它执行任意数量的操作。

    如下是一个最简单的文件:

 <?xml version="1.0"?>
<project default="init" name="Project Argon">
    <description>
    A simple project introducing the use of descriptive tags in Ant build files.
    </description>
    <!-- XML comments can also be used -->

    <target name="init" description="Initialize Argon database">
    </target>
</project>

    需要说明的是:

    1.XML 声明指定了所使用的 XML 的版本,这不是当前的 Ant 所必需的
    2.
一次性打开和关闭一个元素是允许的,如:<target name="init"/>,当元素没有包含任何内容时,更简练的形式会更清晰。
    3.XML 
注释可以使用在整个生成文件中以提高清晰性。而且,Ant 定义了它自己的 description 元素和 description 属性,它们可用于提供更结构化的注释。

应该了解的一些基本概念

属性

   可以这样定义属性:

 <property name="metal" value="beryllium"/>


   
为了在生成文件的其他部分引用这个属性,要使用以下语法:

 ${metal}


   
例如,为了使用这样一个值,它是另一个属性的值的组成部分,标签要写成下面这样:

 <property name="metal-database" value="${metal}.db"/>

   属性分为预定义属性和自定义属性:

   —预定义的属性:

   运行 Ant 的所有系统属性,均可作为 Ant 属性使用,如:
   ${user.home}

   —自定义属性:

   ${ant.version},这个属性包含 Ant 的版本;
   ${basedir}
,这个属性是项目目录的绝对路径(由包含生成文件的目录所定义,或者由 project 元素的可选 basedir 属性所定义)。

    Ant  location 属性专门设计用于以平台无关的方式包含文件系统路径。您会像下面这样使用 location 来代替value

 <property name="database-file" location="archive/databases/${metal}.db"/>


   
在可能的地方使用相对路径名称而不是绝对路径名称,这样还会更加灵活。

定义依赖关系

    使用 target 元素的 depends 属性来实现,每个目标的定义依据的是在它在能够执行之前必须完成的其他所有目标。如:

 <target name="init"/>
<target name="preprocess" depends="init"/>
<target name="compile" depends="init,preprocess"/>
<target name="package" depends="compile"/>


    
目标出现在生成文件中的顺序并不重要:执行顺序是由 depends 属性唯一确定的。

使用命令行来运行Ant

    如果你敲入Ant后回车,默认情况下Ant 寻找一个名为 build.xml 的文件来执行。
    Ant 
使用 -buildfile <file> 参数(-f <file> 是其简写形式)你可以指定要执行的生成文件。

    -D选项用于设置随后可以在生成文件中使用的属性。

 例如,为了将 name 属性设置为某个特定的值,您会使用一个类似下面这样的选项:-Dmetal=beryllium

    这个功能可用于覆盖生成文件中的初始属性设置。正如前面指出过的,属性的值一经设置就不能改变。-D 标志在读取生成文件中的任何信息之前设置某个属性;由于生成文件中的指派落在这个初始指派之后,因此它不会改变其值。

编写常用的target

 Ant 的主要目标是生成 Java 应用程序,它能够内在地支持调用 javac 编译器以及其他 Java 相关任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值