許多開發者習慣用 Ant 建構 Java 專案,Sun 官網也有 Ant 打包 J2ME 教學,但缺點是需手寫 manifest.mf 與 jad。Antenna (antenna.sourceforge.net) 是專為 J2ME 設計的 Ant 擴充任務,一次完成:編譯、預驗證、產生 JAR/JAD、甚至 PRC (PalmOS)、代碼混淆,僅需調整 build.xml 參數即可。
ANT_HOME 並加入 %ANT_HOME%\bin 到 PATH。antenna-bin.jar 加入 classpath。D:\My Folder\projects\j2me\UIDemo\ ├── build.xml ├── src\ (來源:J2MEWTK\apps\UIDemo\src) └── res\ (來源:J2MEWTK\apps\UIDemo\res)
<?xml version="1.0"?>
<project name="UIDemo" default="build" basedir=".">
<!-- 設定 WTK 安裝路徑 -->
<property name="wtk.home" value="c:\J2MEwtk"/>
<!-- 專案基本屬性 -->
<property name="midlet.name" value="UIDemo"/>
<property name="midlet.home" value="."/>
<!-- 定義 Antenna 任務 -->
<taskdef name="wtkjad" classname="de.pleumann.antenna.WtkJad"/>
<taskdef name="wtkbuild" classname="de.pleumann.antenna.WtkBuild"/>
<taskdef name="wtkpackage" classname="de.pleumann.antenna.WtkPackage"/>
<taskdef name="wtkmakeprc" classname="de.pleumann.antenna.WtkMakePrc"/>
<taskdef name="wtkrun" classname="de.pleumann.antenna.WtkRun"/>
<taskdef name="wtkpreverify" classname="de.pleumann.antenna.WtkPreverify"/>
<taskdef name="wtkobfuscate" classname="de.pleumann.antenna.WtkObfuscate"/>
<target name="clean">
<delete failonerror="false" dir="classes"/>
<delete failonerror="false">
<fileset dir=".">
<exclude name="build.xml"/>
</fileset>
</delete>
</target>
<target name="build">
<!-- 自動產生 JAD 檔 -->
<wtkjad jadfile="${midlet.name}.jad"
name="Sun Samples - Demos"
vendor="Sun Microsystems"
version="1.0.3">
<midlet name="UIDemo"
icon="/res/midp/uidemo/icon.png"
class="midp.uidemo.UIDemo"/>
</wtkjad>
<mkdir dir="classes"/>
<!-- 編譯(暫不預驗證) -->
<wtkbuild srcdir="${midlet.home}/src"
destdir="classes"
preverify="false"/>
<!-- 打包、預驗證、可選混淆、自動版本號 -->
<wtkpackage jarfile="${midlet.name}.jar"
jadfile="${midlet.name}.jad"
obfuscate="false"
preverify="true"
autoversion="true">
<fileset dir="classes"/>
<fileset dir="${midlet.home}/res"/>
</wtkpackage>
<!-- 產生 PalmOS PRC (可選) -->
<wtkmakeprc jadfile="${midlet.name}.jad"
prcfile="${midlet.name}.prc"/>
<!-- 直接在模擬器運行 -->
<wtkrun jadfile="${midlet.name}.jad" device="DefaultColorPhone"/>
</target>
</project>
| 任務 | 用途 |
|---|---|
wtkjad | 自動產生 JAD,指定 MIDlet 名稱、圖示、主類別、廠商、版本 |
wtkbuild | 編譯 Java 原始碼,可選是否同步預驗證 |
wtkpackage | 打包 JAR,整合編譯類別與資源,支援混淆、預驗證、自動遞增版本號 |
wtkmakeprc | 將 JAR/JAD 轉為 PalmOS PRC 格式 |
wtkrun | 直接啟動模擬器運行 |
wtkobfuscate | 代碼混淆(需 RetroGuard 或 ProGuard) |
命令列進入專案目錄,執行 ant 即可完成全自動建構。輸出檔案位於專案根目錄:UIDemo.jar、UIDemo.jad、UIDemo.prc。
ANT_HOME 指向安裝目錄。%ANT_HOME%\bin 加入系統 PATH。ant -version 驗證。Antenna 讓 J2ME 建構流程標準化、自動化,極適合持續整合或團隊協作。配合版控系統,可實現一鍵建構、測試、發布全流程。