Ant 作為 Java 領域經典的構建工具,應用範圍極廣且上手容易。近期我在專案中引入 Ant,實現了 J2ME 程式的編譯、打包、混淆與模擬器運行全流程自動化,徹底擺脫了在 IDE 中繁瑣的點擊操作,大幅提升開發效率。本文將完整記錄這套構建體系的搭建過程,供同好參考。
需正確設定 JAVA_HOME、PATH、WTK_HOME 等關鍵變數,確保 Ant 能定位到編譯工具與模擬器。
wtkbuild、wtkpackage、wtkobfuscate 等關鍵任務以下為 build.xml 關鍵片段與邏輯說明,完整腳本涵蓋初始化、編譯、打包、混淆、預驗證、部署與運行全流程。
<property name="midlet.name" value="MobileBook"/>
<property name="wtk.home" value="D:\WTK22"/>
<property name="path.antenna.jar" value="E:\work\Java\ant-1.7.0\lib\antenna.jar"/>
<property name="wtk.proguard.home" value="E:\work\Java\proguard3.5"/>
<property name="path.build.output" value="${basedir}/Deploy"/>
集中管理專案名稱、WTK 路徑、輸出目錄等變數,便於後期維護與多環境遷移。
<path id="classpath.project">
<path location="${path.build.classes}"/>
<path location="${project.root}/KXML.jar"/>
</path>
<property name="wtk.midpapi" value="${wtk.home}\lib\midpapi20.jar;${wtk.home}\lib\cldcapi11.jar;..."/>
明確聲明專案依賴的第三方庫(如 KXML)與 WTK 核心 API,確保編譯階段解析正確。
vendor 與 version 屬性不可為空,否則模擬器啟動會報錯wtkbuild 編譯 src 與 res 目錄,支援 GBK 編碼flag.should.obfuscate=true),調用 wtkobfuscate 混淆,保留 MIDlet 入口類,隨後預驗證ant -f E:\Ant\Build.xml
單條命令即可完成全流程,極大簡化了日常開發與持續集成配置。
vendor、version 不可留空,否則 wtkrun 會拋出異常wtkbuild 的 encoding 屬性保持一致雖然腳本結構略顯粗糙,但已穩定支撐專案日常構建。後續可進一步模組化、參數化,接入 CI 系統實現真正的自動化交付。