Ant腳本簡介與基礎知識

轉載請註明原文地址:http://www.cnblogs.com/ygj0930/p/6624003.html html

    一:Ant是什麼java

    Ant至關於Linux環境下的shell腳本,只不過是用xml文檔來編寫的。咱們知道,在linux環境中,能夠經過編寫shell腳本,封裝一系列繁瑣而平常須要常常重複的操做。在須要進行這些操做時,只需運行這個腳本就能夠批處理這些操做了。Ant腳本也是同樣,只不過它通常是爲了方便Java項目的編譯、運行、測試、打包等工做服務的。linux

    咱們知道,平常開發工做中,一個項目除了編碼外,還需單元測試、集成測試、系統測試,測試過程當中可能會不斷修改代碼,而後再測試。這樣重複而繁瑣的過程是十分耗時間的。在程序編譯、測試經過後,還須要打包導出,若是以後須要改變了代碼,那麼這些工做又要從新再作。Ant的產生,就是爲了把咱們從這些重複而瑣碎的工做中解放出來。shell

    二:Ant能幹什麼apache

    Ant腳本,經過一個xml文件來制定一系列文件的建立刪除任務、編譯任務、運行任務、測試任務、打包任務等。咱們能夠經過ant指令執行這個xml腳本,來批處理這些任務,這樣就能夠實現「一鍵」完成編碼後的編譯、運行、測試、打包導出等工做,使咱們能夠更加專一於代碼的編寫與質量。app

    三:Ant的使用less

    1:安裝配置單元測試

    下載地址:http://ant.apache.org/測試

    安裝:解壓獲得 apache-ant文件夾,這個就是Ant的安裝目錄了,複製到你想安置的地方便可。優化

    配置:與設置Java運行環境類型:在系統環境變量中添加:ANT_HOME= XX:\XX\apache-ant  (apache-ant所在路徑)

                                             在Path環境變量值後面加上:XX:\XX\apache-ant\bin (apache-ant\bin所在路徑)

    打開cmd,輸入 ant ,若是出現如下結果則說明Ant配置成功:

 

    2:編寫Ant腳本

    一個Ant腳本便可完成至少一個項目的編譯、運行、測試、打包等工做。Ant腳本同一命名:build.xml

    腳本內容:

         1)project 節點:一個腳本至關於一個project,用一個project來統領腳本中的衆多操做命令。用這個project對象來指向腳本自己的基本屬性

         project 元素是 Ant 構件文件的根元素, Ant 構件文件至少應該包含一個 project 元素,不然會發生錯誤。

        ● name 屬性:用於指定 project 元素的名稱。

        ● default 屬性:用於指定 project 默認執行時所執行的 target 的名稱。

        ● basedir 屬性:用於指定基路徑的位置。該屬性沒有指定時,使用 build.xml的目錄做爲基準目錄。

       2)property節點:屬性節點,至關於Ant腳本中的變量,經過屬性值來攜帶具體內容。在每一個任務中經過 ${屬性名} 訪問其屬性值,從而獲取內容。

       Ant 提供了一些內置的屬性,它能獲得的系統屬性的列表與 Java 文檔中 System.getProperties() 方法獲得的屬性一致。Ant 還提供了一些它本身的內置屬性:

      basedir: project 基目錄的絕對路徑; 

      ant.file: buildfile的絕對路徑;

      ant.version: Ant 的版本信息;

      ant.project.name: 當前指定的project的名字;

      ant.java.version: Ant 檢測到的JDK版本 。

        3)target節點:任務節點。一個target能夠制定一個或內嵌更多任務。

        target爲ant的基本執行單元,它能夠包含一個或多個具體的單元/任務。多個target 能夠存在相互依賴關係,target的執行順序能夠有兩種方式控制:一種是依賴,depends屬性,AdependsB,則B先執行;另外一種就是內嵌:在target A中經過 <ant target="B">命令執行B任務。  

       ● name 屬性:指定 target 元素的名稱,這個屬性在一個 project 元素中是惟一的。咱們能夠經過指定 target 元素的名稱來指定某個 target 。

       ● depends 屬性:用於描述 target 之間的依賴關係,Ant 會依照 depends 屬性中 target 出現的順序依次執行每一個 target ,被依賴的target 會先執行。

       ● if 屬性:用於驗證指定的屬性是存在,若存在,所在 target 纔會被執行。

       ● unless 屬性:該屬性的功能與 if 屬性的功能正好相反,若不存在,所在 target 將會被執行。

       ● description 屬性:該屬性是關於 target 功能的簡短描述和說明。 

    4)copy命令

    copy主要用來對文件和目錄的複製功能。

    5)delete命令 

    對文件或目錄進行刪除。

    6) mkdir 命令

    建立目錄。

    7)move 命令

    移動文件或目錄,

    8)echo 命令

    在控制檯輸出信息。它包括 message 、 file 、 append 和 level 四個屬性。

    9)jar 命令標籤:打包成jar包並導出

     ● destfile:打包導出的JAR路徑名,即:導出jar包到哪裏。

     ● basedir:被打包的文件,通常是編譯經過的文件。

     ● includes表示被歸檔的文件類型。

     ● exchudes表示被排除的文件類型。

     ● compress表示是否壓縮。

    (打包命令標籤還有war、tgz,解壓包命令uzip)

    10)javac 命令標籤:編譯標籤

    該標籤用於編譯一個或一組java文件。

    ● srcdir表示源程序的目錄。

    ● destdir表示class文件的輸出目錄。

    ● include表示被編譯的文件的模式。

    ● excludes表示被排除的文件的模式。

    ● classpath表示所使用的類路徑。

    ● debug表示包含的調試信息。

    ● optimize表示是否使用優化。

    ● verbose 表示提供詳細的輸出信息。

    ● fileonerror表示當碰到錯誤就自動中止。 

    11)java 命令標籤:運行標籤

    該標籤用來執行編譯生成的.class文件。

    ● classname 表示將執行的類名。

    ● jar表示包含該類的JAR文件名。

    ● classpath所表示用到的類路徑。

    ● fork表示在一個新的虛擬機中運行該類。

    ● failonerror表示當出現錯誤時自動中止。

    ● output 表示輸出文件。

    ● append表示追加或者覆蓋默認文件。

    12)arg 參數標籤:能夠用於定義測試用例,向運行程序進行輸入,觀察輸出

    經過<arg>元素向其傳遞命令行參數。

   ● values 是一個命令參數。

    ● file 表示一個參數的文件名。

    ● line 表示用空格分隔的多個參數列表。

    ● pathref 引用的path(使用path元素節點定義path)的id

    ● prefix 前綴

    ● suffix 後綴 

    13)path節點:表示一個路徑

    path元素用來表示一個類路徑,不過它還能夠用於表示其餘的路徑。

    ● location 表示一個文件或目錄。Ant在內部將此擴展爲一個絕對路徑。

    ● refid 是對當前構建文件中某處定義的一個path的引用。

    ● path表示一個文件或路徑名列表。

 

   3:腳本基本結構解析

<?xml version="1.0" encoding="UTF-8"?>

<!--建立project-->
<project default="默認執行的target" basedir=".">

    <!--建立屬性標籤:攜帶數據,在下面的target中使用-->
    <property name="XX"  XX="xx" />
        
    <!--建立任務-->
    <target name="任務名" depends="依賴哪一個任務">
                <命令標籤  屬性=「屬性值:指明命令執行的具體內容」/>
    </target>
</project>

    4:執行腳本

   ant:在當前目錄下的build.xml運行Ant,執行默認的target。
   ant -buildfile build-test.xml:在當前目錄下的build-test.xml運行Ant,執行默認的target。
   ant -buildfile build-test.xml targetName:在當前目錄下的build-test.xml運行Ant,根據任務名執行一個target。
   ant -buildfile build-test.xml -D屬性=屬性值 targetName:在當前目錄下的build-test.xml運行Ant,根據任務名執行一個target並指定其某屬性爲某值。
相關文章
相關標籤/搜索