Ant工具的使用

使用Ant工具

只要输入 ant 或 ant.bat  即可,若是运行ant命令时没有指定任何参数,Ant会在当下目录搜索 build.xml 文件,若是找到了就以该文件为生成文件,并执行默认的target。
运行时使用 -find 或 -s ,Ant就会到上级目录搜索生成的文件,直至到达文件系统的跟路径。
若要Ant使用其它生成文件,可以使用 -buildfile <生成文件> 选项,其中 -buildfile 也可以使用 -file 或 -f 来代替,这三个命令的作用完全一样。
比如 ant  -file  a.xml 显示指定 a作为生成文件。
若是希望 Ant 运行时只输出少量必要信息,则可使用 -quiet 或 -q 选项,若是希望ant运行时提供更多信息,则使用 -verbose  -v
此外,ant 还允许指定一些属性来覆盖生成文件中指定的属性值,比如 ant -Dbook=ssh  此命令会覆盖 book 属性值
ant -Dpath=%ANT_HOME%  通过此方法,可以将操作系统中的环境变量传入生成文件。 若是想要访问到该环境变量的值,使用 $path 即可
默认情况下,Ant 将执行生成文件中默认的target,若是要指定target,则   ant [target  [target1 [target2 ...] ] ]  。  

定义生成文件

通常放在项目的跟路径下,通常文件名为   build.xml  ,否则使用 ant 时,要指定生成文件的文件名。
生成文件的根元素是<project ...>  每个项目下可以定义多个生成目标,每个生成目标以一个<target/>元素来定义。
<target/> 含有以下属性:

name:指定 target 的名称,此属性必须,当运行指定的target,则只需指定target。

depends:该属性指定一个或多个target名,表示运行该target之前应该先运行该depends属性所指定的一个或多个target。

if:该属性指定一个属性名,用属性表示仅当设置了该属性时才执行此 target。

unless : 该属性指定一个属性名,用属性表示仅当没有设置该属性时才执行此 target。

description:指定该target的描述信息。

每个生成目标又可能由一个或者多个任务序列组成,当执行某个生成目标时,实际上就是依次完成该目标所包含的全部任务。

每一个任务由一段可以执行的代码构成。

定义任务的代码格式如下:

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

其中name是任务的名称,attributeN 和 valueN 表示执行该任务所需的属性名和属性值。

概括讲:一个<project></project>下有多个<target> 每个<target>下有多个任务。

任务有三种类型:1.核心任务(Ant自带的任务)    2.可选任务(添加了一些jar,然后便多了些任务)3.用户自定义任务(程序员开发的,希望被ant执行的任务)   

除此之外,<property.../>元素用于定义一个或多个属性,这里的属性是固定的,值不会改变。

若要获取属性值,则  ${属性名}   若是希望Ant 将生成文件中的$当成普通文本,则使用$$。如$${pro}表示字符串${pro}

<property.../>元素可以接受如下几个常用属性:

name:指定需要设置的属性名

value:指定需要设置的属性值

resource:指定属性文件的资源名称,Ant从属性文件中读取属性和属性值。

file:指定属性文件的文件名,ant从属性文件中读取属性和属性值。

url:指定属性文件的url地址,Ant将负责从属性文件中读取属性名和属性值。

environment:用于指定系统环境变量的前缀,以这种方式可以访问到系统的环境变量。

比如说:

<property file="foo.properties"/>  指定读取 foo.properties 文件中的属性名和属性值。

<property url="http://www.crazyit.org/props/foo.properties"/>  指定读取某个url对应的文件中的属性值与属性名。

<property environment="env"/> 定义访问操作系统环境变量的前缀是env

定义了上述元素,则可以这样访问环境变量的值,<echo>${env.JAVA_HOME}</echo>

path元素和classpath元素

使用Ant编译,运行java程序时常常需要引用第三方jar包,这就需要 <classpath.../> 元素了。

<path.../>元素作为<project.../>元素的子元素,一般用于定义一个路径集,一般被引用。

<path.../>和<classpath.../>用于收集系列的文件和文件集,这两个元素都可以接受如下子元素。

<filelist.../>:采用直接列出文件名指定一些相关文件。

<fileset.../>采用模式字符串的方式指定一些相关文件。

<dirset.../>采用模式字符串的方式指定一些相关目录。

<pathelement.../>用于指定一个或多个目录,此元素可以指定如下两个属性中的一个:

1)<path.../>:指定一个或多个目录(jar文件也可以),多个文件使用":"或“;”作为分隔符

2)<location.../>:指定一个目录或者jar文件。

比如:定义/path/to/file2.jar   /path/to/class2 和 /path/to/class3所组成的路径集。

<pathelement path="/path/to/file2.jar ;  /path/to/class2 ;/path/to/class3 "/>

定义由单个文件 lib/helper.jar 构成的目录。

<pathelement location="lib/helper.jar" />

如果指定多个路径集,则应该使用<dirset.../>,该元素需要一个dir属性,dir属性指定该路径的根路径。同时还可以指定<include.../> 和<exclude.../>两个子元素来指定包含和不包含哪些目录。

<dirset dir="build">

<include name="apps/**/classes"/>  <!-- 指定apps目录下所有classes目录 -->

<exclude name="apps/**/*Test*"/>     <!-- 去除apps目录下所有名称中含有Test字样的目录 -->

</direct>

若是希望配置多个文件,则可以使用<fileset.../> 或者 <filelist.../>元素,通常使用<fileset.../>模式字符串来匹配文件集,而<filelist.../>通过列出文件名来指定文件集。

<filelist.../>元素需要指定如下两个属性。

dir:指定文件集所在的基准路径。

files:多个文件名列表,多个文件名之间以"," 或者空格 分隔开。

比如:配置 src/foo.xml 和 src/bar.xml组成的文件集

<filelist id="docFiles" dir="src" files="foo.xml , bar.xml" />

几乎所有的Ant元素都可以指定id 和refid 属性,其中id为元素指定一个唯一的标识,而refid 用于指定引用另一个元素。

例如:<filelist refid="docFiles"/> 此元素包含id=docFiles元素所包含元素的全部元素。

此标签还允许指定多个<file.../>子元素来指定文件列表。

<filelist id="filelist1" dir="src">

<file name="foo.xml"/>

<file name="bar.xml"/>

</filelist>

<fileset.../>元素可指定如下两个属性:

dir:基准路径,casesensitive :指定是否区分大小写。默认区分大小写。

除此之外,<fileset>还可以使用include和exclude两个子元素来指定包含和不包含哪些文件,例如下面的配置片段:

包含所有 .java 文件,排除所有的文件名中含有Test子串的文件。

<fileset dir="src" casesensitive="yes">

<include name="**/*.java"/>

<exclude name="**/*Test*"/>

</fileset>

Ant的任务

每一个target都由多个task组成。

Ant提供了大量核心的task和可选task,还有程序员可以自定义task,扩展了task的功能。

核心task:

javac,java,sql(用于执行一条或多条sql语句,需要driver  url  userid  和 password等属性,表示驱动类,数据库url,用户名和密码,还可以使用src指定所需要的sql脚本文件,或者直接使用文本内容的方式指定sql脚本字符串),echo(输出某个字符串),exec(执行操作系统的特定命令,通常需要executable属性,用于指定想执行的命令)

F:\Ant-1.9.4\apache-ant-1.9.4\manual\Tasks目录下有详细的task的介绍。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值