日出星辰

          Ant學習實例

          1.安裝Ant

          先從http://ant.apache.org/下載Ant,解壓到任一目錄下面,比如E:\Lab

          然后設置環境變量

          ANT_HOME=E:\Lab\apache-ant-1.8.2

          path=E:\Lab\apache-ant-1.8.2\bin

          最后驗證是否安裝成功

          在dos中輸入ant,如果顯示

          Buildfile: build.xml does not exist!
          Build failed

          則安裝成功

          2.基礎元素

          project元素

          project元素是Ant文件的根元素

          project的屬性

          Attribute

          Description

          Required

          name

          項目名稱

          No

          default

          當沒有指定target時使用的缺省target

          Yes

          basedir

          用于指定基路徑的位置。該屬性沒有指定時,使用 Ant 的構件文件的附目錄作為基準目錄。

          No

          target元素

          target為Ant的基本執行單元,它可以包含一個或多個具體的任務。多個target 可以存在相互依賴關系

          Ant會依照depends屬性中target出現的順序(從左到右)依次執行每個target。然而,要記住的是只要某個target依賴于一個target,后者就會被先執行。

          <target name="A"/>

          <target name="B" depends="A"/>

          <target name="C" depends="B"/>

          <target name="D" depends="C,B,A"/>

          假定我們要執行target D。從它的依賴屬性來看,你可能認為先執行C,然后B,最后A被執行。錯了,C依賴于B,B依賴于A,所以先執行A,然后B,

          然后C,最后D被執行。

          一個target只能被執行一次,即時有多個target依賴于它。

          若想更好的控制build過程,可以使用if或unless。

          if 屬性

              用于驗證指定的屬性是否存在,若不存在,所在 target 將不會被執行。

          unless 屬性

              該屬性的功能與 if 屬性的功能正好相反,它也用于驗證指定的屬性是否存在,若不存在,所在 target 將會被執行。

          property元素

          property元素可看作參量或者參數的定義(即經常使用的變量),project 的屬性可以通過 property 元素來設定,也可在 Ant 之外設定。

          name是變量的名稱 value是變量的值,要用某個變量時使用${name}方式調用。

          3.完整示例

          創建一個java項目

          HelloWorld.java

          package com.test;
          
          public class HelloWorld {
          	public static void main(String[] args) {
          		System.out.println("Hello world");
          	}
          }

          編寫build.xml文件

          注:build.xml放在和src同級目錄,而不是在src下級目錄

          目錄結構是

          MyProject <dir>
          |--lib <dir> --庫目錄
          |--classes <dir> --目的文件目錄
          |--src <dir> --源文件目錄
          |--doc <dir> --api文檔目錄
          |--build.xml

          <?xml version="1.0" encoding="UTF-8" ?>
          <project name="helloWorld" default="run" basedir=".">
          	<property name="src" value="src"/>
          	<property name="dest" value="build/classes"/>
          	<property name="lib" value="lib"></property>
          	<property name="hello_jar" value="hello1.jar"></property>
          	<!--初始化 之前執行刪除操作-->
          	<target name="init" depends="clean">
          		<mkdir dir="${dest}"/>
          	</target>
          	<!--編譯生成class文件 -->
          	<target name="compile" depends="init">
          		<javac srcdir="${src}" destdir="${dest}"></javac>
          	</target>
          	<!--將編譯后的class文件打包-->
          	<target name="build" depends="compile">
          		<mkdir dir="${lib}"/>
          		<jar jarfile="${lib}/${hello_jar}" basedir="${dest}"></jar>
          	</target>
          	<target name="run" depends="build">
          		<java classname="com.test.HelloWorld" classpath="${lib}/${hello_jar}"></java>
          	</target>
          	<!--刪除-->
          	<target name="clean">
          		<delete dir="${dest}"></delete>
          		<delete dir="${lib}"></delete><!-- 是dir 刪除目錄 ,不是file 刪除文件-->
          	</target>
          </project>
          整個過程:初始化----編譯----打包---放到相應的位置

          參考:

          http://www.cnblogs.com/philander/articles/1782254.html

          http://www.cnblogs.com/elric/archive/2011/03/19/1988840.html

          posted on 2011-09-14 22:03 日出星辰 閱讀(193) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 繁峙县| 大厂| 菏泽市| 广丰县| 万安县| 徐水县| 鄯善县| 伊川县| 罗平县| 伊春市| 达州市| 丘北县| 鄯善县| 尚义县| 怀仁县| 拜泉县| 乌拉特中旗| 文安县| 木里| 林芝县| 恩施市| 丰城市| 扬中市| 彰化县| 萨迦县| 郓城县| 金秀| 边坝县| 鹤山市| 肇州县| 凤山市| 长乐市| 筠连县| 奉贤区| 巴中市| 洛川县| 家居| 河间市| 永济市| 香格里拉县| 鲁山县|