当前位置:编程学习 > JAVA >>

用Ant打包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> 

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

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,