Ant发布Web应用
很早就听说了ant,一直用来只用它做一件事情,那就是编译项目中的java文件,偶然的机会看到可以用ant来发布web应用。
目前,我们用eclipse开发Web应用,因为eclipse的目录结构和tomcat下的web应用结构不同,所以在部署项目的时候,我们采取的方式是在tomcat下新建一个文件夹来存放该项目,然后将相应内容复制到此文件夹下,复杂而且浪费人力。下面介绍用ant发布Web应用的方法。
首先,总结一下将eclipse项目部署到tomcat下需要做的工作,共需要如下五步:
- 在tomcat下新建一个空目录作为web应用的根目录,例如为test。
- 将WEB-INF目录及其子目录和文件复制到WEB-INF目录下,包括lib、classes目录及web.xml等。
- 将build目录下的classes目录中的所有文件和目录复制到web应用(test)的WEB-INF目录下的classes文件夹中。
- 将WebContent目录中除了WEB—INF和META-INF之外的所有目录和文件全部复制到Web应用根目录中。
在上述需求分析下,编写脚本(写build.xml)文件,build.xml文件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <project name="helloapp" default="root" basedir="."> <property name="tomcat.home" value="D:\Program Files\Apache Software Foundation\Tomcat 5.5" /> <property name="app.home" value="." /> <property name="src.home" value="${app.home}/src"/> <property name="lib.home" value="${app.home}/WebContent/WEB-INF/lib"/> <property name="classes.home" value="${app.home}/build/classes"/> <property name="WebAppRoot" value="${tomcat.home}/webapps/test"></property> <target name="Init"> <mkdir dir="${WebAppRoot}" /> </target> <!-- ========= "Copye" Target ============ --> <target name="Copy" depends="Init"> <copy flatten="false" todir="${WebAppRoot}" overwrite="true"> <fileset dir="WebContent"> <!--复制lib下的文件 --> <include name="WEB-INF/lib/*" /> <!--复制WEB-INF目录下的文件 --> <include name="WEB-INF/classes/**" /> <include name="WEB-INF/web.xml" /> </fileset> </copy> <!--复制build目录下的classes下的文件 --> <copy flatten="false" todir="${WebAppRoot}/WEB-INF" overwrite="true"> <fileset dir="build"> <include name="classes/**/*" /> </fileset> </copy> <!--复制classes下的文件 --> <copy flatten="false" todir="${WebAppRoot}" overwrite="true" includeemptydirs="false"> <fileset dir="WebContent"> <exclude name="WEB-INF/**/*" /> <exclude name="META-INF/**/*" /> </fileset> </copy> <!--复制src下的文件 --> <copy flatten="false" todir="${WebAppRoot}/src" overwrite="true"> <fileset dir="src"> <include name="**" /> </fileset> </copy> </target> <target name="root" depends="Copy"> </target> </project> |
之后,将build.xml文件放到web应用的根目录下,右击选择Run as—ant build,项目就可以发布到tomcat下了。下次再用的时候只需要复制该xml文件到项目目录下,修改一下要发布的web应用名称即可,很好用吧,相信你会喜欢它的~~