Apache Ant是基於java的軟體建構工具(build tool),理論上它有點類似C/C++的make工具
概述
ant 是一個將軟體編譯、測試、部署等步驟連結在一起加以自動化的一個工具,大多用於Java環境中的軟體開發。在實際軟體開發中,有很多地方可以用到ant。
開發環境:
System:Windows
JDK:1.6+
IDE:eclipse
ant:1.9.1
優點
ant 是Apache軟體基金會JAKARTA目錄中的子項目,它有以下的優點:
1、跨平台性:Ant是純Java語言寫的,所以有很好的跨平台性。
2、操作簡單:Ant是由一個內建任務和可選任務組成的,用ant任務就像是在dos中寫命令列一樣。 Ant運行時需要一個XML檔(建置檔)。 Ant透過呼叫target樹,就可以執行各種task。每個task實作了特定介面物件。
3、維護簡單、可讀性好、整合簡單:由於Ant建構文件 時XML格式的文件,所以很容易維護和書寫,而且結構很清晰。 Ant可以整合到開發環境中。由於Ant的跨平台性和操作簡單的特點,它很容易整合到一些開發環境中去。
make, gnumake, nmake, jam或其他已有的建構工具裡,為什麼還需要單獨搞這個ant工具呢?
因為前面的這些建構工具都有局限性,Ant的原創作者在開發跨多個平台的軟體時無法忍受。
make工具本質上是基於shell: make會評估一些系統依賴,然後才能執行指令。這意味著你可以輕鬆地使用或編寫您正在處理的作業系統的任何程式來擴展這些建置工具。但是,這也意味著你將自己限制在作業系統上,或至少是Unix類別的作業系統類型。
makefile工具本身也是很討厭的,任何一個曾經用makefile工作的人都會遇到麻煩的tab問題。 “由於我在tab前面加了一個空格導致我的命令列總不湊效”,Ant的原始作者說了太多遍了。像Jam這樣的工具在很大程度上處理了這個問題,但是仍然要使用和記住它的一些格式。
而Ant是不同的,Ant使用Java類別擴展,而不是使用基於shell命令擴展。與編寫shell指令不同,設定檔是基於xml的,呼叫一個目標樹來執行各種任務。每個任務由實作特定任務介面的Java物件執行。
Ant去掉了一些shell指令(例如find . -name foo -exec rm {}
)的功能,但它提供了類似的功能,一個跨平台(work anywhere and everywhere)的能力。如果你真的需要執行這些shell命令,Ant有一個<exec>
任務允許根據正在執行的作業系統執行不同的命令。
說穿了,Ant工具為了解決跨平台問題。
Apache Ant的建置檔案是用build.xml寫的。
每個建置檔案包含一個專案(project)和至少一個預設目標(target)。目標包含任務(task)。
Projects
一個project#包含下面3個屬性
屬性 | #描述 |
---|---|
name | 專案名稱 |
default | #在不提供目標時使用的預設目標 |
basedir | 完成所有路徑計算的基本目錄。 這個屬性可能會被預先設定「basedir」屬性覆蓋。 如果該屬性和屬性值都沒有設置,則會使用建置檔案build.xml所在的目錄路徑。 |
可選地,專案的描述可以由頂層的<description>
元素提供。
每個項目定義一個或多個目標。目標是您想要執行的一組任務。啟動Ant時,可以選擇要執行的目標。當沒有目標時,項目的預設值default被使用。
Targets
一個目標可以依賴另外目標,使用depends屬性。
例如,您可能有一個用於編譯的目標,和一個發布的目標。當你執行發布的目標時必須先執行編譯的目標,所以發布目標取決於編譯目標。應該注意的是,Ant的depends屬性, 如果它依賴的目標沒有執行,而是直接執行當前目標,它也會自動去執行依賴的目標。
Tasks
任務是可以執行的程式碼。 一個任務可以有多個屬性(或參數,如果你喜歡的話)。
屬性的值可能包含屬性的參考。這些引用將在任務執行之前解析。
任務有一個共同的結構: <name attribute1="value1" attribute2="value2" ... />
name就是任務的名稱,attributeN是屬性名,valueN是該屬性的值。
所有任務共用一個任務名稱屬性。此屬性的值將用於Ant產生的日誌訊息。
Properties
#Apache Ant Introduction
# Hello World with Apache Ant
以上是Ant的入門指導的詳細內容。更多資訊請關注PHP中文網其他相關文章!