首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

掌握 Eclipse Feature:打造可管理、可品牌化的模組化產品

     編輯:Java 相關知識

為什麼需要 Feature?

單純將外掛放入 plugins 目錄屬於「非受管理外掛」,Eclipse 啟動時僅以啟動畫面閃爍兩次提示配置變更,使用者無法識別、啟用/停用、更新該元件。Feature 封裝一組相關外掛,提供:

  • 先決條件宣告(feature.xml)
  • 受管理的配置單元(可啟用/停用/更新)
  • 品牌化資訊(歡迎頁、About 對話框、Splash 畫面)
  • 更新管理器支援

Feature 結構與品牌化

主要 Feature 控制產品身分

啟動時只有一個主要 Feature(feature.xml 設 primary="true")掌控產品名稱、圖示、視窗圖片、預設屬性值。可透過 install.ini 指定或啟動參數 -feature featureId 切換。

品牌化資源來自外掛

Feature 定義品牌化,但實際資源(about.ini、about.properties、welcomePage)位於關聯外掛(通常與 Feature 同 ID)。about.ini 控制產品級(windowImage、appName、aboutImage)與 Feature 級品牌化文字。

使用 PDE 建置 Feature 與外掛

Ant 建置目標

PDE 為 feature.xml/plugin.xml 產生 build.xml,主要目標:

  • build.jars、build.update.jar(預設)、build.sources、zip.distribution、refresh

外掛目標類似:build.jars、build.update.jar、build.sources、zip.plugin、refresh。

封裝策略:包含 vs 排除

策略適用場景範例 build.properties
包含策略(bin.includes) 專案穩定、檔案較少 bin.includes = feature.xml,\nlicense/
排除策略(bin.excludes) 專案頻繁新增檔案、含大量私有/暫存檔 bin.excludes = temp.folder/,\n.classpath,\n.project,\nbuild.xml,\nbuild.properties,\ncom.your.feature.id_1.0.0.bin.dist.zip,\ncom.your.feature.id_1.0.0.jar

排除策略需額外排除產生的 ZIP/JAR 檔,避免巢狀封裝導致檔案膨脹。

應對檔案結構變更

  • 包含策略:新增目錄/檔案需手動更新 bin.includes
  • 排除策略:新增檔案自動被包含,較適合頻繁變動專案

建議依風險偏好選擇:寧可少打包(功能缺失)或多打包(洩露內部檔)。

Feature 組織與管理

核心/UI/文件三層架構

參考 Eclipse 自身模式(如 jdt.core/jdt.ui/jdt.doc),將模型(非 UI)、UI、說明文件拆分為獨立外掛,再由 Feature 整合。UI 外掛需相依 org.eclipse.ui,核心則不需。

巢狀 Feature 與可選 Feature

  • Feature 可 <includes> 其他 Feature,形成樹狀結構
  • 根 Feature 定義更新站點;子 Feature 可設 search-location="selfboth" 委派更新
  • optional="true" 允許使用者在 Install/Update 視圖啟用/停用
  • 缺少可選 Feature 時無法安裝父 Feature,需配合 Link 檔案分層部署

進階配置技巧

Link 檔案管理安裝佈局

eclipse/links 目錄下的 id.link 檔案指向外部 eclipse/features、eclipse/plugins 目錄。範例結構:

Eclipse-2.1.1/
  eclipse/
    links/           # 啟用的 link
    links-out/       # 停用的 link
  CoolTools/
    EditorList/      # 含 eclipse/features, eclipse/plugins
      EditorList.link 內容:path=D:/Eclipse-2.1.1/CoolTools/EditorList

移動 link 檔案即可動態增減功能,配合 Install/Update 視圖啟用/停用根 Feature 或可選 Feature,實現工作空間級的配置優化。

全域預設屬性:plugin_customization.ini

主要 Feature 關聯外掛的 plugin_customization.ini 可覆寫所有外掛的預設偏好值。步驟:

  1. 啟動乾淨工作空間,調整偏好設定
  2. 匯出為 .epf 檔,擷取鍵值對
  3. 複製至品牌化外掛的 plugin_customization.ini
  4. 或啟動參數 -plugincustomization myCustomDefaults.ini 指定外部檔案

常用自訂範例:

# 標籤頁置頂
org.eclipse.ui.workbench/VIEW_TAB_POSITION=128
# 關閉歡迎頁與關閉確認
org.eclipse.ui.workbench/WELCOME_DIALOG=false
org.eclipse.ui.workbench/EXIT_PROMPT_ON_CLOSE_LAST_WINDOW=false
# 新專案不自動切換透視圖
org.eclipse.ui.workbench/SWITCH_PERSPECTIVE_ON_PROJECT_CREATION=never
# 預設字體
org.eclipse.ui.workbench/org.eclipse.jface.textfont=1|Lucida Console|9|...
# JDT 任務標籤
org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.taskTags=TODO,Edu-Sol
# Package Explorer 雙擊進入
org.eclipse.jdt.ui/packageview.doubleclick=packageview.gointo

結語

Feature 是 Eclipse 配置管理的核心,實現模組化部署、品牌化、自動化建置、動態配置與全域偏好設定。善用 Feature、Link 檔案與 plugin_customization.ini,可打造乾淨、可維護、符合團隊慣例的 Eclipse 開發環境或商業產品。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved