Ant快速安裝及入門

1、什麼是Ant

Ant(Another neat tool)使用java編寫的開源構建工具,爲源碼編譯、單元測試、打包等任務操作提供了自動化支持,並且可以通過java寫新的任務來擴建構建。

2、Ant安裝

(1)Ant屬於解壓配置即可使用的軟件

  下載解壓apache-ant-1.10.5-bin.zip,例如解壓到:D:/ apache-ant-1.10.5

(2)window中設置ant環境變量:

  ANT_HOME    D:/ apache-ant-1.10.5

  path                D:/ apache-ant-1.10.5/bin(或者:%ANT_HOME%\bin)

(3)開始->運行->cmd,輸入如下命令:ant -v

3、Ant核心構建腳本build.xml講解

一個構建腳本由三個基本元素組成:一個project、多個target和多個可用的task,三者之間的關係如下:

task:是一段可執行的代碼,如創建一個目錄或移動一個文件,Ant自帶很多自定義task,用戶可以使用java編寫自己的task

<javac srcdir="src" destdir="dest">
<!--源代碼目錄和目標目錄由srcdir和destdir屬性配置,源代碼放在src,class放在dest-->

target:target是一組task的集合,target與target可以存在依賴關係

<target name="init">
 <mkdir dir="build"/>
</target>
<!--名字爲init的target使用任務mkdir創建目錄build-->
<target name="compile" depends="init">
 <javac srcdir="src" destdir="build"/>
</target>
<!--名字爲compile的target依賴名字爲init的target,並且使用了javac任務-->

project:一個Ant構建腳本必須只能有一個project,project是Ant構建腳本的頂級元素,可包含多個target

<project>
<target name="init">
 <mkdir dir="build"/>
</target>
<target name="compile" depends="init">
 <javac srcdir="src" destdir="build"/>
</target>
</project>

4、Ant案例實戰

項目目錄結構(假如其中demo爲D:\demo):

  1. demo
  2. |--src
  3. |----Hello.java(D:\demo\src\Hello.java)
  4. |--build.xml(D:\demo\build.xml)

hello.java 內容:

public class Hello{
	public static void main(String[] args){
		System.out.println("hello ant");
	}
}

build.xml 內容:

<project name="hello" default="dist" basedir=".">
  <!--設置全局屬性,比如源代碼、輸出和發佈目錄-->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist" location="dist"/>
  <property name="version" value="1.0.0"/>
  <!--定義target名字爲init並創建編譯路徑-->
  <target name="init">
     <mkdir dir="${build}"/>
  </target>
  <!--編譯-->
  <target name="compile" depends="init" description="compile the source">
     <javac srcdir="${src}" destdir="${build}"/>
  </target>
  <!--打jar包-->
  <target name="dist" depends="compile" description="generate the jar">
     <mkdir dir="${dist}"/>
	 <jar jarfile="${dist}/hello-ant-${version}.jar" basedir="${build}" />
  </target>
  <!--刪除編譯-->
  <target name="clean" description="clean build and dist">
     <delete dir="${build}"/>
	 <delete dir="${dist}"/>
  </target>
</project>

 通過target的name可以分別指定執行ant init、ant compile、ant dist、ant clean

 執行 ant dist 由於 init  compile dist 三個tagert 之間的依賴,會依次執行如下圖:

執行ant dist  後會生成一個build的目錄存放編譯後的文件和生成一個dist存放jar文件,目錄結構如下:

  1. demo
  2. |--build
  3. |----Hello.class(D:\demo\build\Hello.class)
  4. |--dist
  5. |----hello-ant-1.0.0.jar(D:\demo\dist\hello-ant-1.0.0.jar)
  6. |--src
  7. |----Hello.java(D:\demo\src\Hello.java)
  8. |--build.xml(D:\demo\build.xml)

5、Ant優缺點總結

優點:由於Ant沒有對構建定義強加任何限制,構建靈活,沒有對項目目錄結構有硬性規定

缺點:(1)xml標記語言構建腳本比較臃腫,當使用標記語言描述類似if/else等邏輯語句是比較困難

           (2)由於Ant沒有一套默認的構建邏輯,所以不同的項目都要重複書寫構建邏輯或者複製構建邏輯進行修改

           (3)Ant沒有暴露構建細節,比如有多少個類編譯了多少的task執行了等等

           (4)Ant本身不帶依賴管理,需要與Ivy集成管理依賴

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章