日出星辰

          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 日出星辰 閱讀(199) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 乃东县| 龙井市| 钦州市| 芮城县| 绥江县| 鸡东县| 布拖县| 洛隆县| 山阴县| 盘锦市| 北碚区| 石林| 石嘴山市| 杭州市| 定襄县| 邢台县| 克什克腾旗| 夏河县| 乐清市| 阿拉善右旗| 偃师市| 襄垣县| 剑川县| 射洪县| 锡林浩特市| 城步| 靖边县| 讷河市| 日喀则市| 龙岩市| 旬邑县| 辽宁省| 临沭县| 银川市| 浦县| 九龙县| 沐川县| 金昌市| 云林县| 灌南县| 锡林郭勒盟|