領先一步
VMware 提供培訓和認證,助您快速前進。
瞭解更多在之前的一篇部落格中,Ben 介紹了 Bundlor、其背後的概念以及如何透過命令列以及在 ANT 和 Maven 中使用它。在這篇文章中,我將展示如何在 Eclipse 環境中使用 Bundlor。
在開發基於 OSGi 的應用時,一些使用者不想花費時間不斷更新他們的MANIFEST.MF,而是希望專注於應用元件中的實際業務邏輯:在這種情況下,Bundlor 的 Eclipse 整合將確保MANIFEST.MF檔案反映專案中程式碼構件所表達的實際依賴關係,並消除了在 Eclipse 中手動管理類路徑設定的需要。此外,BundlorEclipse 可以透過在 Eclipse 中引入 test-only 原始碼資料夾和第二個清單檔案(稱為)來幫助將執行時依賴項與測試依賴項 cleanly 分開。TEST.MF來指定單元測試類的依賴項。
如果 Bundlor 在 Eclipse 中執行,它將使用基於由 Eclipse JDT 建立的抽象語法樹的原始碼掃描來處理 Java 原始檔。這使得 Bundlor 能夠在沒有現有專案類路徑的情況下,以及從非編譯的、部分的 Java 程式碼建立清單檔案。此外,Bundlor 支援的所有其他資源(目前包括 Spring 配置檔案、Hibernate 和 JPA 對映檔案)也在 Eclipse 中進行處理。
在 Eclipse 內部使用時,Bundlor 支援清單檔案的增量建立和更新。這在開發期間很有用,當只有一組原始碼構件發生變化時,Bundlor 將只更新屬於已更改資源的那些頭值,而不是重新處理整個專案。
如果您不想讓 Bundlor 在後臺執行以在資源更改時自動更新清單,或者您想更精細地控制何時應該更新清單,Bundlor 的 Eclipse 整合提供了一個按需啟動 Bundlor 的操作。
除了生成主要的MANIFEST.MF外,BundlorEclipse 還能夠建立一個TEST.MF用於純測試依賴項。為了支援這一點,Eclipse Java 專案中的原始檔夾可以標記為 test-only。然後 Bundlor 將處理這些 test-only 資料夾,並將檢測到的依賴項新增到TEST.MF.
使用方法
BundlorEclipse 可用於任何具有 SpringSource OSGi Bundle 專案特性的 Eclipse Java 專案。請注意,這不要求使用 Bundle Classpath Container。
BundlorEclipse 可以與 dm Server Tools 中的 Bundle Classpath Container 一起使用。可以從任何 OSGi bundle 專案的上下文選單中啟用和停用類路徑容器。在此設定下,當MANIFEST.MF或TEST.MF檔案被 Bundlor 更改後,該容器將自動更新類路徑。典型的開發者工作流程如下:
步驟 4 到 6 只會在從原始碼構件中新增或刪除依賴項,或者原始碼構件本身被刪除/移動時執行。
當然,BundlorEclipse 可以與其他任何類路徑容器(例如 Maven Classpath Container)一起使用:如果您想使用 Maven 外掛,例如 m2eclipse 或 Q4E,您可以移除 Bundle Classpath Container(Spring Tools -> Disable Bundle Classpath Container)併為專案啟用 Maven 支援。在這種 Artifact-First 方法中,Bundlor 只會管理MANIFEST.MF;類路徑將由 Maven 外掛控制。
請注意,在此階段 Bundlor 在檢測到的依賴項、MANIFEST.MF和pom.xml之間沒有任何同步功能:Bundlor 不會自動將檢測到的依賴項新增到pom.xml中。這已列入產品待辦事項,很可能會在後續版本中解決。
BundlorEclipse 作為 dm Server Tools 1.1.3.M1 的一部分提供,後者根據 Eclipse Public License v1.0 獲得許可。您可以從我們的整合更新站點安裝 dm Server Tools,地址是:
http://www.springsource.org/update/e3.4
如果您遇到任何問題,請隨時在 Bundlor 專案的 JIRA 中提出。由於 Bundlor 和 BundlorEclipse 是新產品,我們樂於在我們的 dm Server Tools 社群論壇中討論這些問題。