取得領先
VMware 提供培訓和認證,以加速您的進度。
瞭解更多在之前的部落格中,Ben 介紹了 Bundlor,其背後的概念,以及如何從命令列、ANT 和 Maven 中使用它。 在這篇文章中,我將展示如何在 Eclipse 環境中使用 Bundlor。
在開發基於 OSGi 的應用程式時,有些使用者不希望花時間不斷更新他們的MANIFEST.MF,而是希望專注於應用程式組件中的實際業務邏輯:在這種情況下,Bundlor Eclipse 整合將確保MANIFEST.MF檔案反映專案中程式碼構件表達的實際依賴關係,並消除在 Eclipse 中手動管理類別路徑設定的需要。 此外,BundlorEclipse 可以透過在 Eclipse 中引入僅測試來源資料夾和第二個名為TEST.MF的 manifest 檔案來指定單元測試類別的依賴關係,從而幫助乾淨地分離運行時依賴關係和測試依賴關係。
如果 Bundlor 在 Eclipse 中運行,它將使用基於使用 Eclipse JDT 建立的抽象語法樹的原始程式碼掃描來處理 Java 原始程式碼檔案。 這允許 Bundlor 在沒有現有專案類別路徑的情況下以及從非編譯、部分 Java 程式碼建立 manifest 檔案。 此外,Bundlor 支援的所有其他資源(目前為 Spring 組態檔案、Hibernate 和 JPA 映射檔案)也會在 Eclipse 中處理。
在 Eclipse 內部使用時,Bundlor 支援 manifest 檔案的增量建立和更新。 這在開發過程中非常有用,因為只有一組原始程式碼構件發生了更改。 然後,Bundlor 將僅更新屬於已更改資源的那些標頭值,而不是重新處理整個專案。
如果您不希望 Bundlor 在背景運行以自動更新資源更改上的 manifest,或者您希望更好地控制何時應更新 manifest,則 Eclipse 整合提供了一個按需啟動 Bundlor 的動作。
除了生成主要的MANIFEST.MF之外,BundlorEclipse 還能夠為純粹的測試依賴關係建立一個TEST.MF。 為了支持這一點,Eclipse Java 專案中的原始碼資料夾可以被標記為僅測試。 然後,Bundlor 將處理這些僅測試資料夾,並將檢測到的依賴關係添加到TEST.MF.
BundlorEclipse 可用於具有SpringSource OSGi Bundle 專案性質的任何 Eclipse Java 專案。 請注意,這不需要使用Bundle Classpath Container。
要測試 Bundlor,您可以透過新增 Bundle 專案精靈建立一個新專案。 該精靈將確保滿足運行 Bundlor 的所有先決條件。 如果您想在現有專案上使用或測試 Bundlor,請執行以下步驟
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 -> 停用 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社群論壇上討論這些產品。