折騰了大半天,可算搗騰出來(lái)了,這里需要提醒注意如下幾點(diǎn):
1、如果jdk是1.6及以下,則需要使用的ant版本是1.9.x;
2、如果jdk是1.8,則需要使用ant版本是1.10.x;
3、可用eclipse導(dǎo)出war包,將lib目錄下的jar包放到一個(gè)目錄下,然后直接引用,避免遺漏掉jar包沒(méi)導(dǎo)入進(jìn)去。
以下是build.xml文件內(nèi)容,安裝好ant后,直接執(zhí)行ant build.xml即可打包。
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定義一個(gè)工程,默認(rèn)任務(wù)為warFile。 -->
<project name="bing-info" default="warFile" basedir=".">
? ? <!-- 指定jdk 貌似這里指定也沒(méi)什么用~-->
? ? <property name="env.JAVA_HOME" value="C:/Program Files/Java/jdk1.8.0_101"/>
? ? <!-- 定義屬性,打成war包的名稱。 -->
? ? <property name="warFileName" value="nbAPP.war"></property>
? ? <!-- 指定war包路徑及依賴包路徑? ?這里需要指定工程的路徑 -->
? ? <property name="compilePath" value="D:/project/nbAPP"/>
? ? <!-- 定義路徑,編譯java文件時(shí)用到的jar包。 -->
? ? <path id="project.lib">
? ? ? ? <fileset dir="${basedir}/lib">
? ? ? ? ? ? <include name="**/*.jar"/>
? ? ? ? </fileset>
? ? </path>
? ? <!-- 定義任務(wù),清空任務(wù):清空原有的class文件,創(chuàng)建新的build路徑。 -->
? ? <target name="clean">
? ? ? ? <delete dir="${compilePath}/build" />
? ? ? ? <mkdir dir="${compilePath}/build" />
? ? </target>
? ? <!-- 定義任務(wù),編譯src文件夾中的java文件,編譯后的class文件放到創(chuàng)建的文件夾下。 -->
? ? <target name="compile" depends="clean">
? ? ? ? <javac srcdir="${basedir}/src/main" debug="true" includeantruntime="false" encoding="UTF-8" >
? ? ? ? ? ? <classpath refid="project.lib">
? ? ? ? ? ? </classpath>
? ? ? ? </javac>
? ? </target>
? ? <!-- 定義默認(rèn)任務(wù),將class文件集合成jar包。 -->
? ? <target name="warFile" depends="compile">
? ? ? ? <!-- 刪除原有war包。 -->
? ? ? ? <delete dir="${compilePath}/${warFileName}" />
? ? ? ? <!-- 建立新war包。 -->
? ? ? ? <war destfile="${compilePath}/${warFileName}" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
? ? ? ? ? ? <!-- 將非jar和非class文件拷貝到war包的對(duì)應(yīng)路徑下。 -->
? ? ? ? ? ? <fileset dir="${basedir}/WebRoot">
? ? ? ? ? ? ? ? <include name="**/**.*" />
? ? ? ? ? ? ? ? <exclude name="**/*.jar"/>
? ? ? ? ? ? ? ? <include name="WEB-INF/classes/**"/>
? ? ? ? ? ? </fileset>
? ? ? ? ? ? <!-- 將jar和class文件拷貝到war包的對(duì)應(yīng)路徑下。 -->
? ? ? ? ? ? <lib dir="${compilePath}/lib" />
? ? ? ? ? ? <classes dir="${compilePath}/build" />
? ? ? ? ? ? <!-- 將資源文件拷貝進(jìn)war對(duì)應(yīng)路徑下 -->
? ? ? ? ? ? <classes dir="${basedir}/src/main/resources" />
? ? ? ? </war>
? ? </target>
</project>