轻量级JavaEE企业应用实战(二)

来源:互联网 发布:mac转码工具 编辑:程序博客网 时间:2024/05/16 08:47

Ant工具的使用

1.想让Ant使用其他生成文件,可以使用-buildfile,可以用-file或-f替代

例如:

        ant -f a.xml  //显式指定使用a.xml作为生成文件

        ant -file b.xml  //显式指定使用b.xml作为生成文件

2.如果希望Ant运行时,只输出少量信息使用-quiet或-q;反之,输出更多信息使用-verbose或-v;

3.如果希望Ant将信息打印到日志,而不是直接到控制台,可以用-logfile或-l

例如:

        ant -verbose -l a.log  //运行Ant时输出更多信息,并将信息输出到a.log

4.除此之外,Ant支持指定一些属性来覆盖生成文件中指定的属性值,使用Property task

例如:

        -D<Property>=<value>  //此处的value将会覆盖生成文件中的property属性

通过该方法还可以将操作系统的环境变量值传入生成文件

例如:

        ant -Denv1 = %ANT_HOME% //向生成文件传入一个env1属性

 

定义生成文件

 

Ant生成文件默认名为build.xml,也可以为其他名称;生成文件一般放在项目的顶层目录,有利于保持项目的简洁和清晰

Ant生成文件的根元素是<project.../>,每个项目下可以定义多个生成目标,每个生成目标用<target .../>来定义,它是project

的子元素

<project name="struts2" //指定项目名,对编译、生成项目没有太大作用
description="demo" //项目的描述信息,对...没有大作用
basedir="." //项目的基准路径,生成文件汇总的其他相对路径都是基于该路径
default=""> //默认target这个是必须的。如果ant.bat命令没有显式指定运行的target,则运行default


target元素

name:指定target名称,必需;ant运行指定目标时,根据该name来确定生成目标:同一个生成文件不能有两个相同的target元素

description:target描述信息

<target name="run" depends="compile"> //执行run target之前,必须先执行compile target<target name="exA" if="prop1"> //仅当设置了prop1属性时,才执行exA target<target name="exB" unless="prop2"> //只要没有设置prop2属性,就可以执行exB target


简而言之:Ant生成文件中基本结构是project元素里包含多个target元素,每个target元素里包含多个任务

Ant任务分类

1.核心任务:Ant自带任务

2.可选任务:来自第三方的任务,因此需要一个附加的文件

3.用户自定义的任务:用户自己开发的任务

 

property元素

property元素用于定义一个或多个属性,ant生成文件中属性类似于编程语言中的宏变量,不同的是:Ant生成文件中的属性值不可改变

<property name="builddir" value="dd"> 
如果获取该属性值,使用${propName}形式
注:$符号在Ant中有特殊意义,如果想将ANT生成文件$当做普通字符,则使用$$
<echo>$${builddir}=${builddir}</echo>
属性:
  name:指定需要设置的属性名
  value:指定需要设置的属性值
  resource:指定属性文件的资源名称,Ant将负责从属性文件中读取属性名和属性值
  file:指定属性文件的文件名
  url:指定属性文件的URL地址
  environment:用于指定系统环境变量的前缀,通过这种方式允许Ant访问系统环境变量
  classpath:指定搜索属性文件的文件和路径集
  claaapathref:指定搜索属性文件和路径集引用,该属性并不是直接给出系列文件或路径,而是给定文件和路径集引用
<property file="foo.properties"> //读取此文件中的属性名和值
<property url=<a target=_blank href="http://www.crazyit.org/props/foo.properties">www.crazyit.org/props/foo.properties</a>> //从URL读取属性名和值
<property environment="env"> //通过property元素可以让Ant生成文件访问到操作系统的环境变量
<echo>${env.JAVA_HOME}</echo>
 

path元素和classpath元素

都用于收集系列文件和目录集,这两个标签定义的内容成为Path-like Structures(似目录结构)

pathelement:用于指定一个或多个目录

dirset:采用模式字符串的方式指定系列目录

fileset:采用模式字符串的方式指定系列文件

filelist:采用直接列出系列文件名的防止指定系列文件

path:指定一个或多个目录(或jar文件),多个目录或JAR文件用英文冒号或分好分开

location:指定一个目录和JAR文件

 

<pathelement path="/path/to/file.jar;/path/to/class1;/path/to/class2"> //定义多文件对应的目录集
<pathelement location="lib/helper.jar"> //定义由helper.jar单个文件对应的目录
 
如果指定多个目录集,则应该使用<dirset>元素,需要一个dir属性标注目录集的跟路径;还可以使用include和exclude自标签指定包含和不包含那些目录
<dirset dir="build">
<include name="apps/**/classes" /> //删除包含apps目录下所有classes目录
<exclude name="apps/**/*Test*" /> //排除目录名中有Test的目录
</dirset>
 
如果希望配置多个文件,可以使用fileset或者filelist元素
<filelist id="docfiles" dir="${doc.src}"> //指定文件集里多个文件所在的基准路径,必需
<file name="foo.xml"> //支持使用多个file元素,相当于files
<file name="bar.xml">
</filelist>
<filelist id="docfiles" dir="${doc.src}" files="foo.xml, bar.xml" /> //使用files多个文件名列表,使用逗号或空白隔开
 
<fileset dir="src" casesensitive="yes"> //dir指定文件基准路径,casesensitive:指定是否区分大小写
<include name="**/*.java" />
<exclude name="**/*Test*" />
</fileset>
 

核心Task

javac:用于编译一个或多个java源文件,通常需要srcdir和destdir两个属性,用于指定Java源文件和编译后class文件的位置

java:用于运行某个Java类,通常需要classname属性,指定运行哪个类

jar:用于生成jar包,通常需要指定destfile属性,用于指定所创建jar包的文件名

sql:用于执行一条或多条sql语句,通常需要dirver、url、userid、password等属性

echo:输出某个字符串

exec:执行操作系统的特定命令,需要exeutable属性,用于指定想执行的命令

copy:复制文件或路径

delete:删除文件或路径

mkdir:用于创建文件夹

move:用于移动文件和路径

0 0
原创粉丝点击