JET (Java Emitter Templates) 是 Eclipse 技術專案中的代碼生成框架,能依據 XML 輸入模型與模板藍圖,自動產生原始碼、配置檔、文件等任意文本工件。核心公式:參數 + 藍圖 = 所需工件。
File > New > Other > EMFT JET Transformations > EMFT JET Transformation Project。plugin.xml(註冊 org.eclipse.jet.transform 擴充點)、main.jet(控制檔)、dump.jet(模板)、sample.xml(範例輸入模型)。透過 Run > JET Transformation 啟動設定,指定輸入模型、輸出專案與模板,即可執行生成。
| 標籤 | 用途 |
|---|---|
ws:file | 執行模板並寫入檔案,支援動態路徑。 |
c:get | 輸出 XPath 表達式結果。 |
c:iterate | 遍歷節點,可定義變數與分隔符。 |
c:choose / c:when | 條件式輸出。 |
c:set | 動態修改輸入模型屬性。 |
c:setVariable | 宣告全域變數,支援 XPath 運算。 |
輸入模型定義類別名稱與屬性清單,模板遍歷屬性產生私有欄位、建構子、getter/setter 並自動加入日誌列印。展示 c:iterate、c:choose、camelCase 函數應用。
控制檔 main.jet 遍歷 /app/email 節點,對每封郵件套用 email.jet 模板,依 mood 屬性(happy/neutral/angry)切換稱呼、語氣、結語,展示複雜條件邏輯與變數運算。
JET 提供六大擴充點:tagLibraries、xpathFunctions、transform、modelInspectors、modelLoaders、deployTransforms,可自訂標籤庫、XPath 函數、模型載入器等。
JET 將最佳實踐模板化,大幅減少重複編碼,適用於代碼生成、配置檔產出、文件自動化等情境,是模型驅動開發的利器。