java利用Ant指令碼產生war包全過程_java

來源:互聯網
上載者:User

使用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>

以上就是本文的全部內容,希望對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.