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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
总共三部分! 本书是《轻量级Java EE企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。 本书介绍了Java EE领域的三个开源框架:Struts 2、Spring和Hibernate。其中Struts 2升级到2.2.1,Spring升级到3.0.5,Hibernate升级到了3.6.0。本书还全面介绍了Servlet 3.0的新特性,以及Tomcat 7.0的配置和用法,本书的示例应该在Tomcat 7.0上运行。 本书重点介绍如何整合Struts 2.2+Spring 3.0+Hibernate 3.6进行Java EE开发,主要包括三部分,第一部介绍Java EE开发的基础知识,以及如何搭建开发环境。第部分详细讲解Struts 2.2、Spring 3.0和Hibernate 3.6三个框架的用法,介绍三个框架时,从Eclipse IDE的使用来上手,一步步带领读者深入三个框架的核心。这部分内容是笔者讲授“疯狂Java实训”的培训讲义,因此是本书的重点部分,既包含了笔者多年开发经历的领悟,也融入了丰富的授课经验。第三部分示范开发了一个包含7个表、表之间具有复杂的关联映射、继承映射等关系,且业务也相对复杂的工作流案例,希望让读者理论联系实际,将三个框架真正运用到实际开发中去,该案例采用目前最流行、最规范的Java EE架构,整个应用分为领域对象层、DAO层、业务逻辑层、MVC层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了IDE无关的、基于Ant管理的项目源码,也提供了基于Eclipse IDE的项目源码,最大限度地满足读者的需求。 本书不再介绍Struts 1.X相关内容,如果读者希望获取《轻量级J2EE企业应用实战》第一版中关于Struts1.X的知识,请登录http://www.crazyit.org下载。当读者阅读此书时遇到技术难题时,也可登录http://www.crazyit.org发帖,笔者将会及时予以解答。 读者对象:阅读本书之前,建议先认真阅读笔者所著的《疯狂Java讲义》一书。本书适合于有较好的Java编程基础,或有初步JSP、Servlet基础的读者。尤其适合于对Struts 2、Spring、Hibernate了解不够深入,或对Struts 2+Spring+Hibernate整合开发不太熟悉的开发人员阅读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值