把一个WEB项目打成了一个WAR包,其实原理很简单,就是编译所有CLASS的类,然后把它放到一个临时文件夹中。用WRA命令时,会有四个东西,WEB。XML,LIB下的包,WEBROOT下的所有文件。编译后的CLASS文件夹。现在把BUILD.XML放下来,有东西共享!
<?xml version="1.0" encoding="UTF-8"?> <project name="business" default="deleteWar" basedir="."> <property name="build" value="${basedir}/build" /> <property name="build.class" value="${build}/classes" /> <property name="src" value="${basedir}/src" /> <property name="webApp" value="${basedir}/webApp" /> <property name="lib" value="${webApp}/WEB-INF/lib" /> <!--请将下面的路径改为你本地的路径--> <property name="webserver" value="../tomcat-5.5.27\webapps" /> <!--定义CLASSPACH,编译时用到你外部加入的包--> <path id="classpath"> <pathelement location="${src}" /> <fileset dir="${lib}" includes="***.jar" /> </path> <!--删除任务--> <target name="clean" description="删除"> <echo message="删除目录" /> <delete dir="${build}" /> </target> <!--创建一个临时目录--> <target name="init" description="创建目录" depends="clean"> <echo message="创建目录--以执行" /> <mkdir dir="${build.class}" /> </target> <!--编译java源文件--> <target name="compile" description="编译文件" depends="init"> <echo message="编译文件" /> <javac srcdir="${src}" destdir="${build.class}"> <classpath refid="classpath" /> <compilerarg line="-encoding GBK " /> </javac> </target> <!--打成WAR包--> <target name="generwar" depends="compile"> <echo message="打成WAR" /> <war destfile="${build}/${ant.project.name}.war" webxml="${webApp}/WEB-INF/web.xml"> <fileset dir="webApp"> </fileset> <lib dir="${lib}" /> <classes dir="${build.class}" /> </war> </target> <!--把WAR放到一个指定目录,这里是直接布署到TOMCAT服务器--> <target name="fabu" depends="generwar" description="发布"> <copy file="${build}/${ant.project.name}.war" todir="${webserver}"> </copy> </target> <!--把打好的WAR删除--> <target name="deleteWar" depends="fabu" description="删除服务器上的war"> <delete dir="${build}" /> </target> </project>
build.xml编写好后,部署一个ant服务器,具体的做法是,以本人的机器为例:
在D盘 D:\apache-ant-1.8.0
在环境变量中 配置 ant_home: D:\apache-ant-1.8.0
通过cmd命令行 进入build.xml所在的目录,然后输入ant build.xml 即可将打war包并部署到你要发布到的tomcat中