首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Apache Ant 入門完整教學指南

     編輯:Java 相關知識

Apache Ant 入門完整教學指南。本站提醒廣大學習愛好者:此文章僅供參考,不一定能完全符合您的需求。以下是完整教學正文


1、概述

Ant 是一個將軟體編譯、測試、部署等步驟串聯在一起並自動化的工具,大多用於 Java 環境中的軟體開發。在實際軟體開發中,有許多地方可以用到 Ant。

開發環境:
System:Windows
JDK:1.6+
IDE:Eclipse
Ant:1.9.1

2、優點

Ant 是 Apache 軟體基金會 JAKARTA 專案中的一個子專案,它有以下優點:
1、跨平台性:Ant 是純 Java 撰寫的,所以具有很好的跨平台性。
2、操作簡單:Ant 由內建任務和可選任務組成,用 Ant 任務就像在 DOS 中寫指令一樣。Ant 執行時需要一個 XML 檔案(建置檔案)。Ant 透過呼叫 target 樹,就可以執行各種 task。每一個 task 實作了特定介面物件。
3、維護簡單、可讀性好、整合簡單:因為 Ant 建置檔案是 XML 格式的檔案,所以很容易維護和撰寫,結構很清晰。Ant 可以整合到開發環境中。因為 Ant 的跨平台性和操作簡單的特性,它很容易整合到一些開發環境中去。

3、安裝與設定

1、下載 Ant:https://mirror.esocc.com/apache//ant/binaries/apache-ant-1.9.1-bin.zip

2、解壓縮 zip 壓縮包,放置到你要放置的目錄。我這裡放在 D:\apache-ant-1.9.1,目錄結構如下:

bin 是 Ant 程式執行入口,如果沒有設定 ANT_HOME 的情況下,可以透過 bin 目錄中的 bat 程式執行 build 任務。
etc 目錄存放一些 xsl 輸出模板。
lib 目錄存放 Ant 程式需要依賴的 jar 包。
manual 目錄是 Ant 程式的說明文件。

3、在「我的電腦」→ 右鍵屬性 → 進階系統設定 → 環境變數 中設定 Ant

新增系統變數 ANT_HOME = D:\apache-ant-1.9.1

設定好環境變數,但前提是你已經設定好 JDK 的環境變數。如果沒有設定 JDK 環境變數,請先設定好 JDK 變數。JDK 環境設定方法如下:

  1. 安裝 JDK 到預設目錄:C:\Program Files\Java\jdk1.5.0_05
  2. 右鍵我的電腦,選屬性,進階,環境變數
  3. 在系統變數欄點新建,變數名填 JAVA_HOME,變數值:C:\Program Files\Java\jdk1.5.0_05
  4. 確定後在系統變數欄再新建 CLASSPATH,變數值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  5. 確定後在系統變數欄找到 Path 變數,編輯在變數值末尾添加:%JAVA_HOME%\bin

測試程式碼如下:

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

用記事本編輯存為 Test.java,開啟命令提示字元視窗,cd 到檔案所在目錄:
javac Test.java // 編譯指令
java Test // 執行程式
如果輸出為:Hello World! OK,設定完成,否則重新檢查。

4、測試 Ant

在命令提示字元視窗中輸入 ant,如果出現 Ant 版本資訊,則安裝成功。

5、Ant 執行時環境

Ant 執行指令時,有時會需要一些常用的 jar 庫。這些庫會存在於每一個 Ant 專案中,這時可以把這個 jar 包放到 ant_home\lib 目錄中作為全域庫使用。
如果你不想「汙染」原始的 Ant 程式,可以把 jar 包放在使用者目錄下 ${user.home}/.ant/lib。
如果只是暫時要添加 lib,可以在執行 Ant 時指定 -lib 參數。

6、Ant 指令

語法元素說明:
-help 顯示 Ant 指令及其選項的說明資訊
-projecthelp 顯示建置檔案中所有使用者撰寫的說明文件
-version 顯示 Ant 版本資訊
-quiet 抑制非 echo 任務產生的大部分資訊
-verbose 顯示建置過程中每個操作的詳細資訊
-debug 顯示偵錯資訊
-emacs 格式化日誌資訊以便 Emacs shell mode 解析
-logfile filename 將日誌輸出重導向到指定檔案
-logger classname 指定處理 Ant 日誌記錄的類別
-listener classname 宣告一個監聽類別
-buildfile filename 指定 Ant 要處理的建置檔案,預設為 build.xml
-Dproperty=value 在命令列定義一個屬性名稱-值對
-find filename 指定建置檔案,若目前目錄找不到則向父目錄搜尋

7、Ant 腳本:專案、目標、屬性、任務

詳細說明了 project、target、property、copy、delete、mkdir、move、echo、jar、javac、java、arg、environment、filelist、fileset、patternset、filterset、path 等核心元素與任務的用法與屬性,並提供大量 XML 範例。

8、Ant 編譯打包、執行專案完整範例

<?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="helloWorld.jar"/>
    <target name="init">
        <mkdir dir="${dest}"/>
        <mkdir dir="temp"/>
        <mkdir dir="temp2"/>
    </target>
    <target name="compile" depends="init">
        <javac srcdir="${src}" destdir="${dest}"/>
    </target>
    <target name="build" depends="compile">
        <jar destfile="${hello_jar}" basedir="classes">
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Main-class" value="package.Main"/>
            </manifest>
        </jar>
        <copy file="${hello_jar}" tofile="${dest}\temp.jar"/>
        <copy todir="temp">
            <fileset dir="src">
                <include name="**/*.java"/>
            </fileset>
        </copy>
        <move file="${dest}\temp.jar" tofile="temp\move-temp.jar"/>
        <zip basedir="${basedir}\classes" zipfile="temp\output.zip"/>
        <gzip src="classes\**\*.class" zipfile="output.class.gz"/>
        <unzip src="output.class.gz" dest="extractDir"/>
    </target>
    <target name="run" depends="build">
        <java classname="com.hoo.test.HelloWorld" classpath="${hello_jar}"/>
    </target>
    <target name="clean">
        <delete dir="${dest}"/>
        <delete file="${hello_jar}"/>
    </target>
    <tstamp>
        <format property="OFFSET_TIME" pattern="HH:mm:ss" offset="10" unit="minute"/>
    </tstamp>
    <target name="rerun" depends="clean,run">
        <echo message="###${TSTAMP}#${TODAY}#${DSTAMP}###"/>
        <ant target="clean"/>
        <ant target="run"/>
    </target>
</project>

Ant 不難,你用它就像在 DOS 視窗輸入指令一樣,只是將指令轉換為 XML 腳本,可以重複執行,在一定程度上提高了效率和重複性工作的自動化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved