Ant

首先來一個官方一點的解釋java

apache ant:是一個將軟件編譯、測試、部署等步驟聯繫在一塊兒加以自動化的一個工具,大多用於Java環境中的軟件開發。web

           做用:1.能夠用ant編譯Java類,生成class文件apache

                     2.ant能夠自定義標籤和配置文件tomcat

                     3.ant能夠把相關層架構成包架構

                     4.ant能夠把整個項目生成web包,發佈到tomcatapp

ant的使用方法less

1.下載(這個是否是多餘說,下載個穩定版的哦)工具

2.配置環境變量:一共有三個須要配置測試

                      1.JAVA_HOME:指向JDK的安裝路徑(通常若是你安裝了JDK都已經配置好了吧,沒有配置的都是白癡麼)優化

                      2.ANT_HOME :  指向ANT的安裝路徑 好比E:/ant

                      3.PATH : %ANT_HOME%/bin

3.最最關鍵的定義生成文件(其實以前兩步完成就能夠運行ANT了)

                      生成文件:我理解生成文件應該就是指把java生成class的文件,ant會按照生成文件裏面定義的生成任務進行執行

                      怎麼使用生成文件:ant的默認生成文件爲build.xml(在命令行),要是想使用其餘的xml文件做爲生成文件,要將該文件的文件名做爲參數傳給ant(ant在命令行運                           行時,應該確保是在生成文件所在目錄下輸入ant,而後經過-buildfile或-file或-f來指定生成文件 例如  ant -f demo.xml)

                          生成文件定義了一個項目的各個生成任務(target標籤來表示,每一個target標籤都表示一個生成任務),並定義生成任務間的依賴關係

                      生成文件的位置:通常會把生成文件放在項目頂層目錄中(他們說是爲了保持整潔和清晰)

                      一個項目大概是這個結構  

                      project

                           |—src:存放源文件和各類配置文件的文件夾

                           |—classes:存放編譯後的class文件的文件夾

                           |—lib:存放第三方jar包的地方(看這霸氣的名字就知道了)

                           |—dist:存放項目打包,項目發佈文件的文件夾

                           |—build.xml

4.生成文件中的標籤(copy度娘,栗子是我本身買的=。=)

              

         a.<project>標籤
           每一個構建文件對應一個項目。<project>標籤時構建文件的根標籤。它能夠有多個內在屬性,就如代碼中所示,其各個屬性的含義分別以下。
           (1) default表示默認的運行目標,這個屬性是必須的。
           (2) basedir表示項目的基準目錄。
           (3) name表示項目名。
           (4) description表示項目的描述。
           每一個構建文件都對應於一個項目,可是大型項目常常包含大量的子項目,每個子項目均可以有本身的構建文件。

 

         b.<target>標籤(project的子標籤)
            一個項目標籤下能夠有一個或多個target標籤。一個target標籤能夠依賴其餘的target標籤。
            例如,有一個target用於編譯程序,另外一個target用於聲稱可執行文件。在生成可執行文件以前必須先編譯該文件,因策可執行文件的target依賴於編譯程序的target。               Target的全部屬性以下。
            (1).name表示標明,這個屬性是必須的。
            (2).depends表示依賴的目標。
            (3)if表示僅當屬性設置時才執行。
            (4)unless表示當屬性沒有設置時才執行。
            (5)description表示項目的描述。
            Ant的depends屬性指定了target的執行順序。Ant會依照depends屬性中target出現順序依次執行每一個target。

            PS:我仍是舉個栗子吧

                   1.<target name="demoOne" depends="demoTwo"/>

                   這個的意思就是執行demoOne target這個生成任務以前,必須先執行demoTwo target,另外depends裏面能夠有多個target,按出現順序執行(這個就像是一                      個方法要想執行,必須再上一個方法已經執行的基礎上同樣,一環扣一環)

                   2.<target name="demoOne" unless="demeTwo" />

                   這個意思是想要執行demoOne的前提是demoTwo沒有設置的時候才能夠(就像是while,只有前提知足沒有設置,才能夠執行)。

                   3.<target name="demoOne" if="demoTwo"/>

                   這個意思是想要執行demoOne的前提是demoTwo已經設置的時候才能夠(if,你懂得)。

 

          c.<mkdir>標籤(target的子標籤)
                  該標籤用於建立一個目錄,它有一個屬性dir用來指定所建立的目錄名,其代碼以下:
                  <mkdir dir=」demo」/>也能夠<mkdir dir ="demo/demochild">
                  經過以上代碼就建立了一個目錄.

 

         d.<jar>標籤(target的子標籤)
                 該標籤用來生成一個JAR文件,其屬性以下。
                 (1) destfile表示JAR文件名。
                 (2) basedir表示被歸檔的文件名。
                 (3) includes表示別歸檔的文件模式。
                 (4) exchudes表示被排除的文件模式。

                 PS:老闆再來一個栗子

                 <jar destfile="dist/demo.jar" basedir="project/classes">

                 這個的意思是建立一個jar包名字爲demo.jar,放在dist文件夾下面,被歸檔的文件爲classes(就像是一份與之對應的文件)

 

         e.<javac標籤>(target的子標籤)
                該標籤用於編譯一個或一組java文件,其屬性以下。
                (1).srcdir表示源程序的目錄。
                (2).destdir表示class文件的輸出目錄。
                (3).include表示被編譯的文件的模式。
                (4).excludes表示被排除的文件的模式。
                (5).classpath表示所使用的類路徑。
                (6).debug表示包含的調試信息。
                (7).optimize表示是否使用優化。
                (8).verbose 表示提供詳細的輸出信息。
                (9).fileonerror表示當碰到錯誤就自動中止。

 

      f.<java>標籤(target的子標籤)
                 該標籤用來執行編譯生成的.class文件,其屬性以下。
                (1).classname 表示將執行的類名。
                (2).jar表示包含該類的JAR文件名。
                (3).classpath所表示用到的類路徑。
                (4).fork表示在一個新的虛擬機中運行該類。
                (5).failonerror表示當出現錯誤時自動中止。
                (6).output 表示輸出文件。
                (7).append表示追加或者覆蓋默認文件。

 

       g.<delete>標籤(target的子標籤)
                該標籤用於刪除一個文件或一組文件,其屬性以下。
                (1)/file表示要刪除的文件。
                (2).dir表示要刪除的目錄。
                (3).includeEmptyDirs 表示指定是否要刪除空目錄,默認值是刪除。
                (4).failonerror 表示指定當碰到錯誤是否中止,默認值是自動中止。
                (5).verbose表示指定是否列出所刪除的文件,默認值爲不列出。

 

      h.<copy>標籤(target的子標籤)
               該標籤用於文件或文件集的拷貝,其屬性以下。
               (1).file 表示源文件。
               (2).tofile 表示目標文件。
               (3).todir 表示目標目錄。
               (4).overwrite 表示指定是否覆蓋目標文件,默認值是不覆蓋。
               (5).includeEmptyDirs 表示制定是否拷貝空目錄,默認值爲拷貝。
               (6).failonerror 表示指定如目標沒有發現是否自動中止,默認值是中止。
               (7).verbose 表示制定是否顯示詳細信息,默認值不顯示。

      i.<property>標籤(project的子標籤)

              該標籤用於定義一個或多個屬性

              1.name:指定須要設置的屬性名

              2.value:指定須要設置的屬性值

              3.resource:指定屬性文件袋的源名稱,Ant將負責從文件中讀取屬性名和屬性值

              4.file:指定屬性文件的文件名,Ant將負責從文件中讀取屬性名和屬性值

              5.url:指定屬性文件的URL地址,Ant將負責從屬性文件中讀取屬性名和屬性值‘

              6.environment:用於指定系統環境變量的前綴,經過這種方式容許Ant訪問環境變量

              7.classpathref:指定搜索屬性文件的文件和路徑集。

              8.classpathref:指定搜索文件的文件和路徑集引用,只是引用。

              栗子來嘍:

                <peoperty name="demo" value ="demoValue"/>

                 定義名字爲demo的屬性,其值爲demoValue,若是須要獲取屬性值,則使用${demo}的形式。

5.Ant 的運行安裝好Ant而且配置好路徑以後,在命令行中切換到構建文件的目錄(xml所在目錄哦),輸入Ant命令就能夠運行Ant.若沒有指定任何參數,Ant會在當前目錄下查詢build.xml文件。若是找到了就用該文件做爲構建文件。若是使用了 –find 選項,Ant 就會在上級目錄中找構建文件,直至到達文件系統的根目錄。若是構建文件的名字不是build.xml ,則Ant運行的時候就可使用 –buildfile file,這裏file 指定了要使用的構建文件的名稱。

相關文章
相關標籤/搜索