用 ant 把一个web项目打成war 不依赖eclipse build.xml
2010-10-11 14:15
摸索了好一阵子,终于把一个WEB项目打成了一个WAR包,其实原理很简单,就是编译所有CLASS的类,然后把它放到一个临时文件夹中。用WRA命令时,会有四个东西,WEB。XML,LIB下的包,WEBROOT下的所有文件。编译后的CLASS文件夹。现在把BUILD。XML放下来,有东西共享!
<?xml version="1.0" encoding="UTF-8"?> <project name="ipnet" default="deleteWar" basedir="."> <property name="build" value="${basedir}/build" /> <property name="build.class" value="${build}/classes"/> <property name="src" value="${basedir}/src" /> <property name="webRoot" value="${basedir}/WebRoot"/> <property name="lib" value="${webRoot}/WEB-INF/lib"/> <!--定义CLASSPACH,编译时用到你外部加入的包--> <path id="classpath"> <pathelement location="${src}" /> <fileset dir="${lib}" includes="***.jar" /> </path>
<!--请将下面的路径改为你本地的路径--> <property name="webserver" value="C:\Documents and Settings\mao\桌面\"/>
<!--删除任务--> <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="${webRoot}/WEB-INF/web.xml" > <fileset dir="webRoot" ></fileset> <lib dir="${lib}"/> <classes dir="${build.class}"/> </war> </target>
<!--把打好的WAR删除--> <target name="deleteWar" depends="fabu" description="删除服务器上的war"> <delete dir="${build}"/> </target>
<!--把WAR放到一个指定目录,这里是直接布署到TOMCAT服务器--> <target name="fabu" depends="generwar" description="发布"> <copy file="${build}/${ant.project.name}.war" todir="${webserver}"> </copy> </target>
</project>
by 流落狼
from http://hi.baidu.com/dream_zl/blog/item/73bcd854526cda5b574e006a.html
|