在 Eclipse 中使用 Bundlor

工程 | Christian Dupuis | 2009年3月26日 | ...

在早些時候的部落格中,Ben 介紹了 Bundlor,其背後的概念以及如何在命令列、ANT 和 Maven 中使用它。在這篇文章中,我將展示如何在 Eclipse 環境中使用 Bundlor。

在開發基於 OSGi 的應用程式時,一些使用者不想花時間不斷更新他們的MANIFEST.MF,而是希望專注於應用程式元件中的實際業務邏輯:在這種情況下,Bundlor Eclipse 整合將確保MANIFEST.MF檔案反映了專案中程式碼構件所表達的實際依賴關係,無需在Eclipse中手動管理類路徑設定。此外,BundlorEclipse還可以透過在Eclipse中引入僅用於測試的原始檔夾和名為TEST.MF的第二個清單檔案來幫助清晰地區分執行時依賴關係和測試依賴關係,以指定單元測試類的依賴關係。

背景

如果Bundlor在Eclipse中執行,它將使用基於Eclipse JDT建立的抽象語法樹(AST)的原始碼掃描來處理Java原始檔。這使得Bundlor可以在沒有現有專案類路徑的情況下,並且從非編譯、部分Java程式碼中建立清單檔案。此外,Bundlor支援的所有其他資源(目前是Spring配置檔案、Hibernate和JPA對映檔案)也可以在Eclipse中進行處理。

在Eclipse內部使用時,Bundlor支援增量建立和更新清單檔案。這在開發過程中非常有用,因為此時只有一組原始碼構件發生了變化。Bundlor屆時將只更新屬於已更改資源的那些頭資訊,而不是重新處理整個專案。

如果您不希望Bundlor在後臺執行以在資源更改時自動更新清單,或者您希望對清單何時更新有更多控制,Eclipse整合提供了一個按需啟動Bundlor的操作。

除了生成主MANIFEST.MF檔案之外,BundlorEclipse還能夠建立一個TEST.MF檔案,用於純粹的測試依賴關係。為了支援這一點,Eclipse Java專案中的原始檔夾可以被標記為僅用於測試。Bundlor將處理這些僅用於測試的資料夾,並將檢測到的依賴關係新增到TEST.MF.

用法

檔案中。BundlorEclipse可以用於任何具有SpringSource OSGi Bundle專案性質的Eclipse Java專案。請注意,這不需要使用Bundle Classpath Container

要測試Bundlor,您可以使用New Bundle Project Wizard建立一個新專案。該向導將確保滿足執行Bundlor的所有先決條件。如果您想在現有專案中使用或測試Bundlor,請按照以下步驟操作:

  • 確保專案具有SpringSource OSGi Bundle專案性質。要啟用此性質,請開啟專案的上下文選單並選擇:Spring Tools -> Add OSGi Bundle Project Nature

    add-osgi-bundle-nature-thumbs

  • 在專案的屬性對話方塊中,可選擇性地定義僅用於測試的原始檔夾。開啟專案上的上下文選單並選擇Properties -> Spring -> Java Test Folders

    java-test-folders-thumb

  • 可選擇性地檢查專案根目錄下是否存在名為template.mf的Bundlor模板
  • 從專案的上下文選單觸發Bundlor清單生成過程:選擇Spring Tools -> Run generation of MANIFEST.MF file。或者,透過從上下文選單中選擇Enable incremental generation of MANIFEST.MF file來啟用增量清單生成。

    run-manifest-generation-thumb

這些相同的操作也可從dm Server Tools附帶的清單編輯器Overview Page中獲得。

BundlorEclipse可以與dm Server Tools中的Bundle Classpath Container一起使用。可以在任何OSGi bundle專案的上下文選單中啟用和停用類路徑容器。在此設定中,當MANIFEST.MFTEST.MF檔案被Bundlor更改時,容器將自動更新類路徑。典型的開發人員工作流程可能如下所示:

  1. 開發人員更改Java原始檔或Spring配置,並新增新的依賴關係(我們將很快提供用於Java和Spring XML的儲存庫驅動的內容輔助,以便更容易新增新依賴關係)
  2. 開發人員儲存已更改的資源
  3. BundlorEclipse(以增量模式)自動檢測這些更改並處理已更改的資源
  4. BundlorEclipse更新MANIFEST.MFTEST.MF以反映開發人員引入的新依賴關係
  5. Bundle Classpath Container更新類路徑,因為MANIFEST.MFTEST.MF發生了更改
  6. Java原始檔將使用新的類路徑依賴關係自動重新編譯;Spring配置檔案將重新驗證

只有當依賴關係被新增或從原始碼構件中移除,或者原始碼構件本身被移除/移動時,步驟4到6才會執行。

當然,BundlorEclipse可以與其他任何類路徑容器(例如Maven Classpath Container)一起使用:如果您想使用Maven外掛,如m2eclipse或Q4E,您可以移除Bundle Classpath ContainerSpring 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

如果您遇到任何問題,請隨時在我們dm Server Tools社群論壇中為Bundlor專案開啟一個JIRA。由於Bundlor和BundlorEclipse是新產品,我們很樂意在我們的dm Server Tools社群論壇上討論它們。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有