轻量级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:用于移动文件和路径
相关文章推荐
- java web项目下载代码例子
- JAVA个人笔记
- MyBATIS插件原理第一篇——技术基础(反射和JDK动态代理)
- RHadoop培训 之 Java基础课
- C和Java效率对比试验和编译器优化影响
- [Spring] Spring配置文件中特殊字符的规定
- struts2结合axis开发webservice
- java实现投票程序设计
- 集算器协助java处理结构化文本之导入数据库
- java中的main函数是static的,使得其行为完全表现为独立的,不依附于主类
- Java API —— List接口&ListIterator接口
- java native关键字(java本地方法)
- Java8所有的包介绍(由英文文档翻译而来)
- Java8所有的包介绍(由英文文档翻译而来)
- java中的native关键字有什么作用?(java本地方法)
- Java双括弧初始化操作技巧
- 文章标题
- 配置Java环境变量
- 基于注解的Spring AOP的配置和使用 (顶)
- Java设计模式之单例模式