用ANT打包WAR的流程

来源:互联网 发布:写小说在哪里投稿 知乎 编辑:程序博客网 时间:2024/06/01 22:16

     今天给大家小小的介绍一下在一个project中如何用ant打包工程,如有疑问或者觉得我有错,我有罪,欢迎email to zhe-jiang.he@hp.com.

    在这个示例里我使用Spring SimpleFormController 的例子来配合讲解war构建过程,下图所示是该应用的结构。

   在这个示例里我使用Spring SimpleFormController 的例子来配合讲解war构建过程,下图所示是该应用的结构。

 

src里面的所有类需要编译并且放在build/classes目录下,要构建的war包需要放在dist目录。

    

   所以,第一步,创建build/classes和dist目录,用init来负责完成这些工作:

   [html] 
<target name="init"> 
    <mkdir dir="build/classes"/> 
    <mkdir dir="dist" /> 
</target> 

   接下来编译src目录的类到build/classes目录,编译之前首先要设置好classpath,如下所示:

   [html] 
<path id="compile.classpath"> 
    <fileset dir="WebContent/WEB-INF/lib"> 
        <include name="*.jar"/> 
    </fileset> 
</path> 

   接下来用javac命令进行编译。编译时要保证相关目录已创建好,所以,编译的工作依赖于init,如下所示:

   [html] 
<target name="compile" depends="init" > 
    <javac destdir="build/classes" debug="true" srcdir="src"> 
        <classpath refid="compile.classpath"/> 
    </javac> 
</target> 

   接下来就可以打war包,可以用ant提供的war命令完成这部分工作:

   [html] 
<target name="war" depends="compile"> 
    <war destfile="dist/AntExample.war" webxml="WebContent/WEB-INF/web.xml"> 
        <fileset dir="WebContent"/> 
        <lib dir="WebContent/WEB-INF/lib"/> 
        <classes dir="build/classes"/> 
    </war> 
</target> 
war命令的详细参考:http://ant.apache.org/manual/Tasks/war.html

    

   最后,可能需要做一些清理工作,如:

   [html] 
<target name="clean"> 
    <delete dir="dist" /> 
    <delete dir="build" /> 
</target> 

   以下是完整的构建脚本:

   [html] 
<?xml version="1.0" ?>  
<project name="AntExample1" default="war"> 
 
    <path id="compile.classpath"> 
        <fileset dir="WebContent/WEB-INF/lib"> 
            <include name="*.jar"/> 
        </fileset> 
    </path> 
     
    <target name="init"> 
        <mkdir dir="build/classes"/> 
        <mkdir dir="dist" /> 
    </target> 
     
    <target name="compile" depends="init" > 
        <javac destdir="build/classes" debug="true" srcdir="src"> 
            <classpath refid="compile.classpath"/> 
        </javac> 
    </target> 
     
    <target name="war" depends="compile"> 
        <war destfile="dist/AntExample.war" webxml="WebContent/WEB-INF/web.xml"> 
            <fileset dir="WebContent"/> 
            <lib dir="WebContent/WEB-INF/lib"/> 
            <classes dir="build/classes"/> 
        </war> 
    </target> 
     
    <target name="clean"> 
        <delete dir="dist" /> 
        <delete dir="build" /> 
    </target> 
     
</project> 

   还有附件的,我竟然找不到上传附件的地方,莫非“床上等你”不允许上传附件,还是我不熟悉相关操作。罢了,需要附件的可以点击原文去下载

 

原创粉丝点击