使用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腳本代碼
-
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <!-- 定義一個工程,默認任務為warFile。 --> 4 <project name="awp" default="warFile" basedir="."> 5 6 <!-- 定義屬性,打成war包的名稱。 --> 7 <property name="warFileName" value="awp.war"></property> 8 9 <!-- 定義路徑,編譯java文件時用到的jar包。 --> 10 <path id="project.lib"> 11 <fileset dir="${basedir}/lib"> 12 <include name="**/*.jar"/> 13 </fileset> 14 </path> 15 16 <!-- 定義任務,清空任務:清空原有的class文件,創建新的build路徑。 --> 17 <target name="clean"> 18 <delete dir="${basedir}/src/main/webapp/WEB-INF/classes" /> 19 <mkdir dir="${basedir}/src/main/webapp/WEB-INF/classes" /> 20 </target> 21 22 <!-- 定義任務,編譯src文件夾中的java文件,編譯后的class文件放到創建的文件夾下。 --> 23 <target name="build" depends="clean"> 24 <javac srcdir="${basedir}/src/main/java" destdir="${basedir}/src/main/webapp/WEB-INF/classes" includeantruntime="false" source="1.6" target="1.6"> 25 <classpath refid="project.lib"> 26 </classpath> 27 </javac> 28 29 <!--復制src/main/java下非java文件到/src/main/webapp/WEB-INF/classes--> 30 31 <copy todir="${basedir}/src/main/webapp/WEB-INF/classes"> 32 <fileset dir="${basedir}/src/main/java"> 33 <include name="**/**.*" /> 34 <exclude name="**/*.java"/> 35 </fileset> 36 </copy> 37 </target> 38 39 <!-- 定義默認任務,將class文件集合成jar包。 --> 40 <target name="warFile" depends="build"> 41 <!--將lib文件夾下的jar打包到WEB-INF/lib下 --> 42 43 <copy todir="${basedir}/src/main/webapp/WEB-INF/lib"> 44 <fileset dir="${basedir}/lib"> 45 46 </fileset> 47 </copy> 48 <!-- 建立新war包。 --> 49 <war destfile="${basedir}/${warFileName}" webxml="${basedir}/src/main/webapp/WEB-INF/web.xml"> 50 <!-- 將非jar和非class文件拷貝到war包的對應路徑下。 --> 51 <fileset dir="${basedir}/src/main/webapp"> 52 <include name="**/**.*" /> 53 <exclude name="**/*.jar"/> 54 <exclude name="**/*.class"/> 55 </fileset> 56 <!-- 將jar和class文件拷貝到war包的對應路徑下。 --> 57 <lib dir="${basedir}/src/main/webapp/WEB-INF/lib" /> 58 <classes dir="${basedir}/src/main/webapp/WEB-INF/classes" /> 59 </war> 60 </target> 61 62 </project>