在前面瞭解了ant工具的一些概念,下面進行簡單的使用。
ant是一種構建工具,與make類似,但它是由java實現的,跨平臺。可以到apache官網:http://www.apache.org/進行下載。配置環境變量很簡單,和配置jdk之類的差不多,把下下來的ant解壓到某個目錄,讓環境變量指向bin目錄即可。
下面給了一個非常簡單的例子,編寫一個簡單程序,編譯它們,然後打成jar包,並運行:
HelloWorld.java:
- package test.ant;
- public class HelloWorld{
- public static void main(String[] args){
- System.out.println("Hello world1");
- }
- }
執行ant需要一個build.xml配置文件,它描述了ant需要執行的程序,具體操作等所有信息,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="hello1.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="test.ant.HelloWorld" classpath="${hello_jar}"/>
- </target>
- <target name="clean">
- <delete dir="${dest}" />
- <delete file="${hello_jar}" />
- </target>
- <target name="rerun" depends="clean,run">
- <ant target="clean" />
- <ant target="run" />
- </target>
- </project>
簡要介紹一下上面這些標籤的含義:
第一句:<?xml version="1.0" encoding="UTF-8" ?>,這個就不多說了,版本,編碼見得太多了。
<project name="HelloWorld" default="run" basedir=".">
</project>
name是你給它取的名字,basedir代碼工作的根目錄,.代表當前目錄.default代表默認要做的事情,即執行哪個操作。
<property name="src" value="src"/> 類似變量。name定義變量的名稱,value定義變量的值。
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
你要執行的一個操作叫做一個target,name是定義名稱,depends是它執行所依賴的target,比如這裏,在執行compile之前,會先檢查init是否曾經被執行,如果執行過就直接執行compile,否則先執行它依賴的init target,然後在執行compile target。
上面每個target從名字可以看出它們分別的作用:
新建文件夾:
<target name="init">
<mkdir dir="${dest}"/>
</target>
編譯:
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
做jar包:
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
運行:
<target name="run" depends="build">
<java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>
刪除生成的文件
<target name="clean">
<delete dir="${dest}" />
<delete file="${hello_jar}" />
</target>
再次運行,這裏顯示瞭如何在一個target裏邊調用其他的target
<target name="rerun" depends="clean,run">
<ant target="clean" />
<ant target="run" />
</target>
好,這個簡單的build文件就算完成了,然後新建一個src文件夾,把源程序按照這裏的test.ant包目錄放進src裏面。把build文件放到與src同一目錄下,在命令行定位到build.xml目錄下,鍵入ant命令即可,如果只想單獨執行某個target,鍵入 ant target name,如:ant build.
ant也並沒有IDE工具好用,但它也有其特點:
在服務器部署的時候,因爲它小巧,方便,只需要一個build.xml,到任何一臺服務器只需簡單修改一些設定和目錄就可以運行。
在linux或者unix部署的時候,就發揮作用了。
當有些維護人員不懂編程時,你只需給它build文件,讓他執行簡單命令即可。