您的位置:首页 > 编程语言 > Java开发

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

2015-12-15 11:26 288 查看

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:用于移动文件和路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: