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

Posted on 2006-05-06 02:44  CQIT-CS  阅读(702)  评论(0编辑  收藏  举报

  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"></echo>
 46
 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" />
 60
 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>,目标标签主要用到的属性有namedepends.name指定目标的名称,depends指定目标的依赖特性,当A目标有一个depends=”B”属性是,就说明A的运行依赖于B,在运行A的时候如果没有运行BANT会自动地先运行B目标再运行A目标.

       在这个文件中定义了6个目标.分别是:cleaninitcompilemkjardeployrunserver,其中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包,destfilejar包文件名,可以包含路径信息;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

    第一句是设置ANTHOME目录,第二句是设置ANT.exe的目录,最后一句就是调用ANT-f参数是指定构建文件路径.runserver是构建文件中的目标名称,因为在本文的构建文件中,runserver依赖于deploydeploy依赖于mkjarmkjar依赖于compilecompile依赖于initinit依赖于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(假设端口号是8888WEB应用的虚拟根目录是JSFApp).

 

       以上就是进行一个JSF应用的步骤,是一个从什么都没有到最后看到运行页面的全过程.其实不光是JSF,其他所有的JAVA WEB应用都是类似的步骤.

Copyright © 2024 CQIT-CS
Powered by .NET 8.0 on Kubernetes