[JAVA] 用Ant打包war的簡單流程

原文簡單易懂,且內容不多,推薦直接看英文,這裏只是簡單翻譯一下,做為以後參考所用。
http://go.rritw.com/www.dzone.com/tutorials/java/ant/ant-sample-build-file-war-1.html

 

在這個示例裏我使用Spring SimpleFormController 的例子來配合講解war構建過程,下圖所示是該應用的結構。


src裡面的所有類需要編譯並且放在build/classes目錄下,要構建的war包需要放在dist目錄。

所以,第一步,創建build/classes和dist目錄,用init來負責完成這些工作:

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

接下來編譯src目錄的類到build/classes目錄,編譯之前首先要設置好classpath,如下所示:

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

接下來用javac命令進行編譯。編譯時要保證相關目錄已創建好,所以,編譯的工作依賴於init,如下所示:

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

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

<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://go.rritw.com/ant.apache.org/manual/Tasks/war.html

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

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

以下是完整的構建腳本:

<?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>


再附上一些Ant相關的連結,同樣通俗易懂,推薦閱讀一下:
http://go.rritw.com/www.tutorialspoint.com/ant/ant_introduction.htm