Ant 攻略

          1? Ant 是什么?
          Ant 是一種基于 Java XML build 工具。

          2 下載、安裝 Ant
          安裝 Ant
          下載 .zip 文件,解壓縮到 c:\ant1.3( 后面引用為 %ANT_HOME%)

          2.1
          在你運(yùn)行 Ant 之前需要做一些配置工作。
          ·
          bin 目錄加入 PATH 環(huán)境變量。
          ·
          設(shè)定 ANT_HOME 環(huán)境變量,指向你安裝 Ant 的目錄。在一些 OS 上, Ant 的腳本可以猜測 ANT_HOME Unix Windos NT/2000 )-但最好不要依賴這一特性。
          ·
          可選地,設(shè)定 J***A_HOME 環(huán)境變量(參考下面的高級(jí)小節(jié)),該變量應(yīng)該指向你安裝 JDK 的目錄。
          注意:不要將 Ant ant.jar 文件放到 JDK/JRE lib/ext 目錄下。 Ant 是個(gè)應(yīng)用程序,而 lib/ext 目錄是為 JDK 擴(kuò)展使用的(如 JCE JSSE 擴(kuò)展)。而且通過擴(kuò)展裝入的類會(huì)有安全方面的限制。
          2.2
          運(yùn)行 Ant

          運(yùn)行 Ant 非常簡單,當(dāng)你正確地安裝 Ant 后,只要輸入 ant 就可以了。

          n
          沒有指定任何參數(shù)時(shí), Ant 會(huì)在當(dāng)前目錄下查詢 build.xml 文件。如果找到了就用該文件作為 buildfile 。如果你用 -find 選項(xiàng)。 Ant 就會(huì)在上級(jí)目錄中尋找 buildfile ,直至到達(dá)文件系統(tǒng)的根。要想讓 Ant 使用其他的 buildfile ,可以用參數(shù) -buildfile file ,這里 file 指定了你想使用的 buildfile

          n
          可以指定執(zhí)行一個(gè)或多個(gè) target 。當(dāng)省略 target 時(shí), Ant 使用標(biāo)簽 <project> default 屬性所指定的 target


          命令行選項(xiàng)總結(jié):
          ant [options] [target [target2 [target3] ...]]
          Options:
          -help print this message
          -projecthelp print project help information
          -version print the version information and exit
          -quiet be extra quiet
          -verbose be extra verbose
          -debug print debugging information
          -emacs produce logging information without adornments
          -logfile file use given file for log output
          -logger classname the class that is to perform logging
          -listener classname add an instance of class as a project listener
          -buildfile file use specified buildfile
          -find file search for buildfile towards the root of the filesystem and use the first one found
          -Dproperty=value set property to value
          例子
          ant
          使用當(dāng)前目錄下的 build.xml 運(yùn)行 Ant ,執(zhí)行缺省的 target
          ant -buildfile test.xml
          使用當(dāng)前目錄下的 test.xml 運(yùn)行 Ant ,執(zhí)行缺省的 target
          ant -buildfile test.xml dist
          使用當(dāng)前目錄下的 test.xml 運(yùn)行 Ant ,執(zhí)行一個(gè)叫做 dist target
          ant -buildfile test.xml -Dbuild=build/classes dist
          使用當(dāng)前目錄下的 test.xml 運(yùn)行 Ant ,執(zhí)行一個(gè)叫做 dist target ,并設(shè)定 build 屬性的值為 build/classes

          3 編寫 build.xml

          Ant
          buildfile 是用 XML 寫的。每個(gè) buildfile 含有一個(gè) project

          buildfile
          中每個(gè) task 元素可以有一個(gè) id 屬性,可以用這個(gè) id 值引用指定的任務(wù)。這個(gè)值必須是唯一的。(詳情請參考下面的 Task 小節(jié))

          3.1 Projects

          project
          有下面的屬性:
          Attribute Description Required
          name
          項(xiàng)目名稱 . No
          default
          當(dāng)沒有指定 target 時(shí)使用的缺省 target Yes
          basedir
          用于計(jì)算所有其他路徑的基路徑。該屬性可以被 basedir property 覆蓋。當(dāng)覆蓋時(shí),該屬性被忽略。如果屬性和 basedir property 都沒有設(shè)定,就使用 buildfile 文件的父目錄。 No
          項(xiàng)目的描述以一個(gè)頂級(jí)的 <description> 元素的形式出現(xiàn)(參看 description 小節(jié))。

          一個(gè)項(xiàng)目可以定義一個(gè)或多個(gè) target 。一個(gè) target 是一系列你想要執(zhí)行的。執(zhí)行 Ant 時(shí),你可以選擇執(zhí)行那個(gè) target 。當(dāng)沒有給定 target 時(shí),使用 project default 屬性所確定的 target

          3.2 Targets

          一個(gè) target 可以依賴于其他的 target 。例如,你可能會(huì)有一個(gè) target 用于編譯程序,一個(gè) target 用于生成可執(zhí)行文件。你在生成可執(zhí)行文件之前必須先編譯通過,所以生成可執(zhí)行文件的 target 依賴于編譯 target Ant 會(huì)處理這種依賴關(guān)系。

          然而,應(yīng)當(dāng)注意到, Ant depends 屬性只指定了 target 應(yīng)該被執(zhí)行的順序-如果被依賴的 target 無法運(yùn)行,這種 depends 對于指定了依賴關(guān)系的 target 就沒有影響。

          Ant
          會(huì)依照 depends 屬性中 target 出現(xiàn)的順序(從左到右)依次執(zhí)行每個(gè) target 。然而,要記住的是只要某個(gè) target 依賴于一個(gè) target ,后者就會(huì)被先執(zhí)行。
          <target name="A"/>
          <target name="B" depends="A"/>
          <target name="C" depends="B"/>
          <target name="D" depends="C,B,A"/>
          假定我們要執(zhí)行 target D 。從它的依賴屬性來看,你可能認(rèn)為先執(zhí)行 C ,然后 B ,最后 A 被執(zhí)行。錯(cuò)了, C 依賴于 B B 依賴于 A ,所以先執(zhí)行 A ,然后 B ,然后 C ,最后 D 被執(zhí)行。

          一個(gè) target 只能被執(zhí)行一次,即時(shí)有多個(gè) target 依賴于它(看上面的例子)。

          如果(或如果不)某些屬性被設(shè)定,才執(zhí)行某個(gè) target 。這樣,允許根據(jù)系統(tǒng)的狀態(tài)( java version, OS, 命令行屬性定義等等)來更好地控制 build 的過程。要想讓一個(gè) target 這樣做,你就應(yīng)該在 target 元素中,加入 if (或 unless )屬性,帶上 target 因該有所判斷的屬性。例如:
          <target name="build-module-A" if="module-A-present"/>
          <target name="build-own-fake-module-A" unless="module-A-present"/>
          如果沒有 if unless 屬性, target 總會(huì)被執(zhí)行。

          可選的 description 屬性可用來提供關(guān)于 target 的一行描述,這些描述可由 -projecthelp 命令行選項(xiàng)輸出。

          將你的 tstamp task 在一個(gè)所謂的初始化 target 是很好的做法,其他的 target 依賴這個(gè)初始化 target 。要確保初始化 target 是出現(xiàn)在其他 target 依賴表中的第一個(gè) target 。在本手冊中大多數(shù)的初始化 target 的名字是

          posted on 2006-11-21 17:58 Timothy 閱讀(271) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE開發(fā)環(huán)境

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          語義Web : 網(wǎng)絡(luò)就是計(jì)算機(jī),軟件就是服務(wù)!

          常用鏈接

          留言簿(4)

          隨筆檔案(20)

          文章分類(25)

          文章檔案(25)

          新聞分類(4)

          新聞檔案(4)

          相冊

          收藏夾(27)

          個(gè)人主頁

          網(wǎng)絡(luò)博客

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 加查县| 石台县| 无棣县| 涡阳县| 湖北省| 苏尼特左旗| 祁连县| 夹江县| 佛冈县| 九台市| 黄大仙区| 沂南县| 东莞市| 石楼县| 科尔| 扶风县| 军事| 元氏县| 综艺| 江城| 三江| 肇源县| 南康市| 启东市| 靖江市| 临清市| 舞阳县| 常熟市| 邯郸县| 达日县| 内黄县| 收藏| 湛江市| 桦川县| 泽库县| 麻阳| 齐齐哈尔市| 图木舒克市| 新沂市| 江川县| 宝坻区|