Apache Ant 是早期 Java 專案最主流的建構工具,透過 XML 定義編譯、打包、部署等自動化流程。本文解析一份實際專案的 build.xml,展示屬性定義、路徑管理、編譯與 JAR 打包的標準寫法。
專案名稱 tdlphase4,預設目標為 dist(打包發布)。基準目錄設為當前目錄(.)。關鍵屬性規劃如下:
src:原始碼根目錄(範例為絕對路徑 E:tdl-phase4WorkspaceTotalJavaSource-JbuilderPJ)build:編譯輸出目錄(build)dist:最終產物輸出目錄(WebLogic 部署目錄 C:Softwareweblogicmyserverservletclasses)Name:產物基礎名稱 tdlphase4透過 <path id="java_classpath"> 定義編譯時類路徑,包含系統環境變數 ${env.classpath} 以及 WebLogic 部署目錄下所有 JAR 檔(**/*.jar)。
<tstamp/> 生成 DSTAMP、TSTAMP 等時間戳屬性,供打包命名使用。init,調用 <javac> 將 ${src} 編譯至 ${build},啟用 deprecation="yes" 檢測過時 API,引用前述 java_classpath。compile,調用 <jar> 將 ${build} 打包為 ${dist}/${Name}-${DSTAMP}.jar,實現帶日期版本號的發布。<?xml version="1.0" encoding="utf-8"?>
<project name="tdlphase4" default="dist" basedir=".">
<property name="src" value="E:tdl-phase4WorkspaceTotalJavaSource-JbuilderPJ"/>
<property name="build" value="build"/>
<property name="dist" value="C:Softwareweblogicmyserverservletclasses"/>
<property environment="env"/>
<property name="Name" value="tdlphase4"/>
<path id="java_classpath">
<pathelement path="${env.classpath}"/>
<fileset dir="C:Softwareweblogicmyserverservletclasses">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="init">
<tstamp/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${build}" deprecation="yes">
<classpath refid="java_classpath"/>
</javac>
</target>
<target name="dist" depends="compile">
<jar jarfile="${dist}/${Name}-${DSTAMP}.jar" basedir="${build}"/>
</target>
</project>
E:...、C:...),改用相對路徑或環境變數,支援跨機器建構。<ant> 或 <subant> 協調。理解 Ant 基礎語法有助於維護舊專案,亦能深化對建構生命週期的認知。