1、如果jdk是1.6及以下,則需要使用的ant版本是1.9.x;
2、如果jdk是1.8,則需要使用ant版本是1.10.x;
3、可用eclipse導出war包,將lib目錄下的jar包放到壹個目錄下,然後直接引用,避免遺漏掉jar包沒導入進去。
以下是build.xml文件內容,安裝好ant後,直接執行ant build.xml即可打包。
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定義壹個工程,默認任務為warFile。 -->
<project name="bing-info" default="warFile" basedir=".">
<!-- 指定jdk 貌似這裏指定也沒什麽用~-->
<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文件時用到的jar包。 -->
<path id="project.lib">
<fileset dir="${basedir}/lib">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- 定義任務,清空任務:清空原有的class文件,創建新的build路徑。 -->
<target name="clean">
<delete dir="${compilePath}/build" />
<mkdir dir="${compilePath}/build" />
</target>
<!-- 定義任務,編譯src文件夾中的java文件,編譯後的class文件放到創建的文件夾下。 -->
<target name="compile" depends="clean">
<javac srcdir="${basedir}/src/main" debug="true" includeantruntime="false" encoding="UTF-8" >
<classpath refid="project.lib">
</classpath>
</javac>
</target>
<!-- 定義默認任務,將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包的對應路徑下。 -->
<fileset dir="${basedir}/WebRoot">
<include name="**/**.*" />
<exclude name="**/*.jar"/>
<include name="WEB-INF/classes/**"/>
</fileset>
<!-- 將jar和class文件拷貝到war包的對應路徑下。 -->
<lib dir="${compilePath}/lib" />
<classes dir="${compilePath}/build" />
<!-- 將資源文件拷貝進war對應路徑下 -->
<classes dir="${basedir}/src/main/resources" />
</war>
</target>
</project>