某天不小心刪除了 Eclipse J2ME 專案 verifIEd/classes 目錄下的內容,結果 Eclipse 再也不在該目錄生成 class 檔案——徹底罷工了。與 NetBeans 內建 Ant 建構不同,Eclipse 對 J2ME 的原生支援較弱。正好近期在研究 Ant,花了兩小時編寫了一個功能完整的 Ant 建構腳本,現分享給大家參考。
src 目錄下的原始碼preverify.exe 對 class 檔案進行預驗證CONF.properties只需修改以下屬性:
midp.lib.dir:WTK lib 目錄路徑midp.lib.path:依需求擴展的 JAR 路徑programName:生成的 JAR/JAD 檔案名稱preverify.exe 與 emulator.exe 的具體參數可在腳本中自行調整。
src 目錄需包含 MANIFEST.MF 和 ${programName}.jar(用於打包與部署)res 目錄存放 PNG 圖片資源lib 目錄| 檔案 | 用途 |
|---|---|
CONF.properties | 建構配置屬性檔 |
GEN.properties | 生成 MANIFEST.MF 與 JAD 的替換屬性檔 |
JAD.tmp | JAD 生成模板 |
MANIFEST.tmp | MANIFEST.MF 生成模板 |
<target name="init"> <!-- 初始化環境,清理並建立目錄 -->
<target name="compile"> <!-- 編譯原始碼 -->
<target name="verifyForNoObfuscate"> <!-- 預驗證未混淆 class -->
<target name="genManifest"> <!-- 依模板生成 MANIFEST.MF -->
<target name="package"> <!-- 打包未混淆 JAR -->
<target name="obfuscate"> <!-- ProGuard 混淆並解壓 -->
<target name="verifyForObfuscate"> <!-- 預驗證混淆後 class -->
<target name="deploy"> <!-- 打包最終部署 JAR -->
<target name="genJad"> <!-- 生成 JAD 檔案 -->
<target name="recoveryGenProperties"> <!-- 還原被修改的 GEN.properties -->
<target name="run"> <!-- 模擬器運行 -->
<target name="end" depends="compile,verifyForNoObfuscate,genManifest,package,obfuscate,verifyForObfuscate,deploy,genJad,recoveryGenProperties,run"/>
CONF.propertieswtk.home.dir=D:\WTK2.2
midp.lib.dir=${wtk.home.dir}\lib
midp.lib.path=${midp.lib.dir}\cldcapi11.jar;${midp.lib.dir}\midpapi20.jar
GEN.properties(含變數替換標記)MIDLET_NAME=@PROGRAMNAME@
MIDLET_VERSION=1.0.0
MIDLET_VENDOR=kevin
MIDLET_01_NAME=MainMidlet
MIDLET_01_LOGO=
MIDLET_01_CLASS=com.gamecollege.work.menu.MainMidlet
MIDLET_JAR_URL=@PROGRAMNAME@.jar
MIDLET_JAR_SIZE=@JARSIZE@
ME_PROFILE=MIDP-2.0
ME_CONF=CLDC-1.1
MANIFEST.tmpMIDlet-Name: @MIDLET_NAME@
MIDlet-Version: @MIDLET_VERSION@
MIDlet-Vendor: @MIDLET_VENDOR@
MIDlet-1: @MIDLET_01_NAME@,@MIDLET_01_LOGO@,@MIDLET_01_CLASS@
MicroEdition-Profile: @ME_PROFILE@
MicroEdition-Configuration: @ME_CONF@
JAD.tmpMIDlet-Name: @MIDLET_NAME@
MIDlet-Version: @MIDLET_VERSION@
MIDlet-Vendor: @MIDLET_VENDOR@
MIDlet-Jar-URL: @MIDLET_JAR_URL@
MIDlet-Jar-Size: @MIDLET_JAR_SIZE@
MIDlet-1: @MIDLET_01_NAME@,@MIDLET_01_LOGO@,@MIDLET_01_CLASS@
MicroEdition-Profile: @ME_PROFILE@
MicroEdition-Configuration: @ME_CONF@
<filterset> 替換標記,維護性極佳GEN.properties 中的動態替換值,支援重複建構-keep 'public class * extends javax.microedition.midlet.MIDlet'這套腳本可直接套用於中小型 J2ME 專案,適當修改路徑與參數即可投入生產環境。