ant打包web项目

时间:2021-12-08 18:36:47

要把项目所需的jar包全部放WEB-INF的lib下,不然会出编译问题

中文乱码问题:<javac encoding="utf-8"  srcdir="${src.dir}" destdir="${classes.dir}">

 

<classpath refid="compile.classpath"/>

</javac>

 

摸索了好一阵子,终于把一个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>