?? ant_demo程序說明.txt
字號:
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>
javac srcdir="src" destdir="classes"
來看一下這個文件的內容,它描述了以下信息:工程的名字為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}來引用。所以,要注意這樣一個原則“目錄的定義與目錄的引用應該分開”。 (未完待續)
個人心得:
可以在<mkdir dir="${dest}"/>
前面加上<mkdir dir="${src}"/>以生成源文件夾。
手工執行javac srcdir="src" destdir="classes"通不過,
使用javac src\HelloWorld.java -d classes時可以通過,懷疑是ANT內部機制。
classname="com.sharetop.antdemo.HelloWorld"
可以隨便改,只要和JAVA源文件的包名一致,在目標文件夾下就可以生成相應的文件夾。如在本例中JAVA文件改為 package com.linlin.HelloWorld,classname="com.linlin.HelloWorld"效果是一樣的。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -