Java的Build工具—Ant應用指南(1)

來源:互聯網
上載者:User

Java的Build工具—Ant應用指南(1)

本文以最新發行的Ant 1.5.1為例,介紹這款優秀的Build工具的安裝配置、基本應用和一些進階話題。最新的Ant是 http://jakarta.apache.org/ant/ 。

Ant是一種基於Java的Build工具。理論上來說,它有些類似於C中的make,但比make優越。現在存在的大多數Build工具,如make、gnumake、nmake、jam等都存在這樣或那樣的不足,比如依賴於特定的平台、設定檔過於複雜或者對格式無法檢查而容易出錯等。與這些工具相比較,Ant的兩個特性決定了它是一款優秀的Build工具:

1. 基於Java的實現。具有良好的跨平台性,同時可以通過增加新的Java類來擴充Ant的功能,而無需去瞭解不同平台上不同的指令碼語言。

2.基於XML的設定檔。Ant以XML樹來描述Target/Task的關係,檔案結構清晰、易讀易寫,並且利用XML對格式的控制來避免由於設定檔的錯誤造成的Build操作失敗。

安裝與配置

Ant的安裝非常簡單,把從網上下載的jakarta-ant-1.5.1-bin.zip解開到一個目錄下即可(以下假定安裝在目錄D:/jakarta-ant-1.5.1)。接下來需要進行環境變數配置:

SET ANT_HOME=D:/jakarta-ant-1.5.1 //注意是Ant的安裝目錄,不是bin子目錄
SET PATH=%PATH%;%ANT_HOME%/bin;

在配置環境變數之前,請確認已經正確設定了JAVA_HOME系統變數。輸入ant命令,看到如下輸出說明已成功安裝了Ant工具:

Buildfile: build.xml does not exist!
Build failed

提示資訊表明在目前的目錄不存在build.xml設定檔,但這本身已經說明Ant成功運行了。

快速入門

下面用一個最簡單也是最經典的例子-HelloWorld來感受一下Ant吧。

//HelloWorld.java
package com.sharetop.antdemo;
public class HelloWorld {
public static void main( String args[] ) {
System.out.println("Hello world. ");
}
}

要讓Ant編譯這個檔案,首先需要編寫一個Build設定檔。在一般情況下,這個檔案被命名為build.xml。

<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="run" basedir="." >
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="hello_jar" value="hello.jar" />
<target name="init">
<mkdir dir="${dest}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<target name="run" depends="build">
<java classname="com.sharetop.antdemo.HelloWorld" classpath="${hello_jar}"/>
</target>
</project>

來看一下這個檔案的內容,它描述了以下資訊:工程的名字為HelloWorld,工程有四個target,分別是init、compil、build和run,預設是run。compile只有一個任務javac,源檔案位於src目錄下,輸出的類檔案要放在classes目錄下。build的任務是jar,產生的jar檔案為hello.jar,它打包時以classes為根目錄。而run則是執行這個HelloWorld類,用hello.jar作為classpath。這四個target之間有一個依賴關係,這種關係用depends來指定。即如果Target A依賴於Target B,那麼在執行Target A之前會首先執行Target B。所以從下面運行預設Target(run)的輸出看,這四個Target的執行順序是:init→compile→build→run。檔案目錄結構1所示。HelloWorld.java檔案在src/com/sharetop/antdemo子目錄下。



圖1 ant_demo應用的目錄結構


在命令列輸入命令:ant,然後運行,可以看到如下輸出:

如果設定檔名不是build.xml,比如是build_front.xml,那麼,可以使用-buildfile命令參數指定:

G:/myDoc/ant_demo>ant -buildfile build_front.xml

也可以單獨執行指定的某個target,比如,只編譯不打包執行,可以使用下面輸入命令即可:

G:/myDoc/ant_demo>ant compile


在相應的目錄下會找到編譯出的HelloWorld.class檔案。

再看看上面的build.xml設定檔,檔案開頭定義了3個屬性,分別指定了源檔案輸出路徑、類檔案輸出路徑和產生的Jar檔案名稱,後面對這些路徑的引用都通過一個${property name}來引用。所以,要注意這樣一個原則“目錄的定義與目錄的引用應該分開”。 (未完待續)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.