Apache Ant 是基於 Java 的建構工具,類似 Make 但專為 Java 設計、跨平台相容性佳。本文記錄在 Windows 7 SP1 x64 環境下,從 JDK、Ant 安裝到環境變數配置、build.xml 編寫、專案編譯的完整流程,含 Android 專案編譯說明。
| 元件 | 版本 | 安裝路徑 |
|---|---|---|
| JDK | 1.6.0_22 (32-bit) | C:\Program Files (x86)\Java\jdk1.6.0_22 |
| Ant | 1.8.4 | C:\apache-ant-1.8.4 |
| Android SDK | r10 | C:\android-sdk-windows |
| Android NDK | r8b | C:\android-ndk-r8b |
| Cygwin | 1.7.9-1 | C:\cygwin |
| Eclipse | Helios SR2 (32-bit) | C:\eclipse |
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_22
Path 追加:%JAVA_HOME%\bin
驗證:java -version、javac -version
apache-ant-1.8.4-bin.zip)C:\apache-ant-1.8.4ANT_HOME=C:\apache-ant-1.8.4
Path 追加:%ANT_HOME%\bin
驗證:ant -version → 應顯示 Apache Ant(TM) version 1.8.4
export ANT_HOME="/home/tools/apache-ant-1.8.4"
export PATH="${PATH}:${ANT_HOME}/bin"
build.xml 是 Ant 的核心,定義編譯、打包、部署等目標。建議從現有專案複製一份修改,或參考:
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="jar" basedir=".">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="dist.dir" value="dist"/>
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="compile">
<mkdir dir="${build.dir}/classes"/>
<javac srcdir="${src.dir}" destdir="${build.dir}/classes" includeantruntime="false"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${dist.dir}"/>
<jar destfile="${dist.dir}/MyProject.jar" basedir="${build.dir}/classes"/>
</target>
</project>
cd 專案根目錄 (含 build.xml)
ant # 執行 default target
ant clean jar # 指定目標鏈
輸出位於 ./build/classes、./dist/*.jar
需在 build.xml 中定義 war 目標,引用 jspc 任務預編譯 JSP,打包 WEB-INF/lib、WEB-INF/web.xml 等。
tools/ant/ 內建 build.xml 模板android update project -p . -t android-19
# 會生成 build.xml、local.properties、proguard-project.txt
編譯指令:
ant debug # 產生未簽名/debug 簽名 APK (bin/*-debug.apk)
ant release # 產生未簽名 release APK,需手動簽名對齊
注意:Eclipse/ADT 內建建構系統同樣調用 Ant,命令列執行僅供 CI/CD 或無圍面環境使用。
Cygwin 提供類 Unix 指令環境,適合習慣 Bash 的開發者:
$ cd /cygdrive/c/workspace/MyProject
$ ant clean jar
若需編譯 NDK 原生碼:
$ /cygdrive/c/android-ndk-r8b/ndk-build
| 現象 | 原因 | 解決 |
|---|---|---|
ant: command not found | Path 未生效 | 重開終端機、檢查 echo %PATH% |
JAVA_HOME not set | 變數名拼寫錯誤或未套用 | 系統環境變數確認 JAVA_HOME 指向 JDK 根目錄 |
| 編碼錯誤 | 中文檔名/註解 | javac 任務加 encoding="UTF-8" |
Android aapt 錯誤 | 32-bit 相容庫缺失 | 安裝 glibc.i686, libstdc++.i686 (Linux) |
Ant 適合輕量、無依賴管理需求、或維護舊專案。新專案建議直接採用 Gradle (Android) 或 Maven/Gradle (一般 Java)。