使用ant指令碼前的準備
1、下載一個ant安裝包。如:apache-ant-1.8.4-bin.zip。解壓到E盤。
2、配置環境變數。新增ANT_HOME:E:\apache-ant-1.8.4;PATH增加:E:\apache-ant-1.8.4\bin。
3、檢查ant是否配置完成。運行->cmd輸入:ant -version。查看是否列印ant的版本號碼。
打包的實質
產生jar包的實質
1、編譯工程src檔案夾下的java檔案,產生相應的class檔案。
2、將所有的class檔案集合成jar包。
產生war包的實質
1、編譯工程src檔案夾下的java檔案,產生相應的class檔案。
2、將工程WebContent下的除了class檔案和jar包以外的檔案,全部拷貝到war包的對應目錄下。
3、將編譯產生的class檔案,全部拷貝到war包WEB-INF/classes檔案夾下。
4、將工程lib中的jar包,全部拷貝到war包的WEB-INF/lib下。最後壓縮成war包。
一個產生war包的ant指令碼代碼
<?xml version="1.0" encoding="UTF-8"?> <!-- 定義一個工程,預設任務為warFile。 --> <project name="awp" default="warFile" basedir="."> <!-- 定義屬性,打成war包的名稱。 --> <property name="warFileName" value="awp.war"></property> <!-- 定義路徑,編譯java檔案時用到的jar包。 --> <path id="project.lib"> <fileset dir="${basedir}/lib"> <include name="**/*.jar"/> </fileset> </path> <!-- 定義任務,清空任務:清空原有的class檔案,建立新的build路徑。 --> <target name="clean"> <delete dir="${basedir}/src/main/webapp/WEB-INF/classes" /> <mkdir dir="${basedir}/src/main/webapp/WEB-INF/classes" /> </target> <!-- 定義任務,編譯src檔案夾中的java檔案,編譯後的class檔案放到建立的檔案夾下。 --> <target name="build" depends="clean"> <javac srcdir="${basedir}/src/main/java" destdir="${basedir}/src/main/webapp/WEB-INF/classes" includeantruntime="false" source="1.6" target="1.6"> <classpath refid="project.lib"> </classpath> </javac> <!--複製src/main/java下非java檔案到/src/main/webapp/WEB-INF/classes--> <copy todir="${basedir}/src/main/webapp/WEB-INF/classes"> <fileset dir="${basedir}/src/main/java"> <include name="**/**.*" /> <exclude name="**/*.java"/> </fileset> </copy> </target> <!-- 定義預設任務,將class檔案集合成jar包。 --> <target name="warFile" depends="build"> <!--將lib檔案夾下的jar打包到WEB-INF/lib下 --> <copy todir="${basedir}/src/main/webapp/WEB-INF/lib"> <fileset dir="${basedir}/lib"> </fileset> </copy> <!-- 建立新war包。 --> <war destfile="${basedir}/${warFileName}" webxml="${basedir}/src/main/webapp/WEB-INF/web.xml"> <!-- 將非jar和非class檔案拷貝到war包的對應路徑下。 --> <fileset dir="${basedir}/src/main/webapp"> <include name="**/**.*" /> <exclude name="**/*.jar"/> <exclude name="**/*.class"/> </fileset> <!-- 將jar和class檔案拷貝到war包的對應路徑下。 --> <lib dir="${basedir}/src/main/webapp/WEB-INF/lib" /> <classes dir="${basedir}/src/main/webapp/WEB-INF/classes" /> </war> </target> </project>
以上就是本文的全部內容,希望對大家的學習有所協助。