在 Eclipse 中使用 Bundlor

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

在之前的一篇部落格中,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

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

    add-osgi-bundle-nature-thumbs

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

    java-test-folders-thumb

  • (可選)在專案屬性對話方塊中定義 test-only 原始檔夾。右鍵點選專案,選擇 Properties -> Spring -> Java Test Folders(可選)檢查您是否有一個名為的 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.MFpom.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 社群論壇中討論這些問題。

訂閱 Spring 新聞郵件

透過 Spring 新聞郵件保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您快速前進。

瞭解更多

獲取支援

Tanzu Spring 透過單一簡單訂閱提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

近期活動

檢視 Spring 社群所有近期活動。

檢視全部