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

[原创]ECLIPSE环境下利用ANT进行JSF开发入门(三)

2006-05-06 02:44 661 查看
1 <?xml version="1.0"?>
2
3 <project basedir=".">
4
5
6
7 <property name="tomcathome" value="F:/Tomcat5.5"/>
8
9 <property name="lib.dir" value="webapp/web/WEB-INF/lib" />
10
11 <property name="deploy.destfile.jar" value="webapp/web/WEB-INF/lib/deploy-myJSF.jar" />
12
13 <property name="deploy.destdir.class" value="webapp/web/WEB-INF/classes/webapp/src/com/corejsf" />
14
15 <property name="deploy.properties.from" value="build/webapp/src/com/corejsf" />
16
17 <property name="deploy.properties.to.build" value="build/webapp/src/com/corejsf" />
18
19 <property name="deploy.properties.to.webinf" value="webapp/web/WEB-INF/classes/webapp/src/com/corejsf" />
20
21
22
23 <path id="build.classpath">
24
25 <pathelement location="${lib.dir}/commons-beanutils.jar" />
26
27 <pathelement location="${lib.dir}/commons-collections.jar" />
28
29 <pathelement location="${lib.dir}/commons-digester.jar" />
30
31 <pathelement location="${lib.dir}/commons-logging.jar" />
32
33 <pathelement location="${lib.dir}/jsf-api.jar" />
34
35 <pathelement location="${lib.dir}/jstl.jar" />
36
37 <pathelement location="${lib.dir}/standard.jar" />
38
39 </path>
40
41
42
43 <target name="clean">
44
45 <echo message="Delete work dir
47 <delete dir="work"></delete> <!--delete webapp cache-->
48
49 <delete dir="lib"></delete>
50
51 <delete dir="build"></delete>
52
53 </target>
54
55
56
57 <target name="init" depends="clean">
58
59 <echo message="Init part of this project
61 <mkdir dir="build"/>
62
63 <mkdir dir="lib"/>
64
65 </target>
66
67
68
69 <target name="compile" depends="init">
70
71 <javac destdir="build">
72
73 <classpath refid="build.classpath"></classpath>
74
75 <src path="webapp/src"></src>
76
77 </javac>
78
79 </target>
80
81
82
83 <target name="mkjar" depends="compile">
84
85 <jar destfile="lib/myjsf.jar" basedir="build">
86
87 <manifest>
88
89 <attribute name="Build-By" value="Bill-Ant" />
90
91 </manifest>
92
93 </jar>
94
95 </target>
96
97
98
99 <target name="deploy" depends="mkjar">
100
101 <copy file="lib/myjsf.jar" tofile="${deploy.destfile.jar}"></copy>
102
103 <copy todir="${deploy.destdir.class}">
104
105 <fileset dir="build/webapp/src/com/corejsf">
106
107 <include name="*.class"/>
108
109 </fileset>
110
111 </copy>
112
113 <copy todir="${deploy.properties.to.build}">
114
115 <fileset dir="${deploy.properties.from}">
116
117 <include name="*.properties"/>
118
119 </fileset>
120
121 </copy>
122
123 <copy todir="${deploy.properties.to.webinf}">
124
125 <fileset dir="${deploy.properties.from}">
126
127 <include name="*.properties"/>
128
129 </fileset>
130
131 </copy>
132
133 </target>
134
135
136
137 <target name="runserver" depends="deploy">
138
139 <exec dir="${tomcathome}/bin" executable="${tomcathome}/bin/startup.bat" ></exec>
140
141 </target>
142
143</project>
144
145
4.编写ANT构建文件

ANT是一个强大的开源构建工具,它可以快速地对整个WEB应用程序进行编译打包部署等工作,以目标的方式来管理不同的任务,ANT把建立一个WEB应用所需做的大量工作都集成在了一起统一地管理起来,这种方式大大地提高了应用构建的效率和灵活性.

针对本文所述的应用我编写了以下这个构建文件,文件名为build.xml:

project是整个构建文件的根,向下看就是属性定义,属性是一个名称/值对,所以property标签就有两个属性,一个是name,另一个是value,属性定义下面是path结点,这一段指定了在编译器编译的时候要用到的jar包的路径.在整个文件中有很多的${}符号,这个符号就是对属性的引用,大括号中是属性名称.

Jar包定义段之后就是各个目标的定义了,目标标签是<target>,目标标签主要用到的属性有name,depends.name指定目标的名称,depends指定目标的依赖特性,当A目标有一个depends=”B”属性是,就说明A的运行依赖于B,在运行A的时候如果没有运行B,ANT会自动地先运行B目标再运行A目标.

在这个文件中定义了6个目标.分别是:clean,init,compile,mkjar,deploy,runserver,其中clean目标用来清除产生的工作目录和过期的类和jar包.在构建前进行清理是一个好习惯.init是进行初始化,是用来建立一些在编译构建过程中需要的文件夹.compile目标就是进行JAVA文件的编译,mkjar目标是把编译后的类文件打成jar包,deploy是把编译好的类文件和jar包部署到WEB-INF中.最后一个目标就是运行TOMCAT服务器.

下面对一些用到的ANT标签进行说明:

<property name="propertyName" value="propertyValue" />:属性定义,name是属性名称,value是属性值

<javac destdir="build">

<classpath refid="build.classpath"></classpath>

<src path="webapp/src"></src>

</javac>:编译JAVA源文件,其子标签src指定要编译的源文件目录;classpath指定查找用户类文件的位置,功能与javac命令的-classpath参数相同.

<jar destfile="dest.jar" basedir="classes_dir" />:打jar包,destfile是jar包文件名,可以包含路径信息;basedir是要打包的class文件目录.也可以用下面的形式:

<jar destfile="dest.jar" basedir="classes_dir">

<manifest>

<attribute name="Built-By" value="${user.name}">

<attribute name="Main-class" value="MainClass">

</manifest>

</jar>

manifest子结点指定为jar包生成一个清单文件,manifest的子结点说明了清单文件中的内容,可见清单文件中的内容也是名称/值对.在上面定义了作者和主类.

<delete dir="${toBeDelete_dir}" /> :删除指定的目录

<mkdir dir="${buildDir}" />:新建目录

<copy file="src/test.java" tofile="src/testCopy.java" /> :复制文件并改名

<move file="src/test.java" tofile="src/testMove.java" /> :仅改名不复制(重命名)

<zip destfile=”test.zip” basedir=”toBeZipDir” />:压缩文件

<exec dir="${tomcathome}/bin" executable="${tomcathome}/bin/startup.bat" /> :执行外部文件.

把上面的构建文件内容复制到WEB应用的根目录下保存为build.xml.

5.编写BAT批处理文件

到现在为止,WEB应用程序部分就完成了.写BAT文件的目的就是把所有要进行的工作都集成起来.这一步不是必要的,但确实非常有用的.要执行本文的WEB应用可以运行如下的批处理文件:

SET ANT_HOME=F:\devSpace\Ant-1.6.2

path=%ANT_HOME%\bin

SET PATH=%PATH%

call ant -f F:\workspace\JSFWebAppEx\build.xml runserver

第一句是设置ANT的HOME目录,第二句是设置ANT.exe的目录,最后一句就是调用ANT,-f参数是指定构建文件路径.runserver是构建文件中的目标名称,因为在本文的构建文件中,runserver依赖于deploy,deploy依赖于mkjar,mkjar依赖于compile,compile依赖于init,init依赖于clean,所以在ANT.EXE中指定运行runserver时,ANT会自动地从第一个目标开始运行.

把上面的批处理文件内容保存到WEB应用的根目录下的run.bat中.

6.运行WEB应用

当TOMCAT运行起来以后就可以在浏览器中观察结果了.注意:如果不知道HTTP的端口号,那么在输入URL以前请先在%TOMCAT_HOME%\conf\server.xml中查看HTTP的端口号.然后输入http://localhost:8888/JSFApp/faces/index.jsp(假设端口号是8888,WEB应用的虚拟根目录是JSFApp).

以上就是进行一个JSF应用的步骤,是一个从什么都没有到最后看到运行页面的全过程.其实不光是JSF,其他所有的JAVA WEB应用都是类似的步骤.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: