簡體   English   中英

如何從jar庫創建OSGi包?

[英]How to create OSGi bundle from jar library?

如何從jar庫創建OSGi包?

如果您正在使用eclipse:有一個向導。

它允許您選擇多個jar庫並創建包含這些jar的插件項目(即OSGi包)。

你可以在這里找到它:

File -> New -> Other ... -> Plug-in from Existing jar Archives.

替代文字

原則上,您只需要將OSGi元數據添加到清單中

eclipse有一個bundle創建者,它提供了一種非常實用的方法來添加這些條目,這些條目應該是Plugin Dev Toolkit的一部分。

這篇文章詳細介紹了該過程以及如何使用Bnd工具,maven等進行操作。

我個人非常喜歡pax工具 它是基於命令行的,但非常實用。 要創建現有jar的OSGi包,可以使用bnd工具

首先查看是否可以從存儲庫中找到啟用osgi的庫版本

  1. SpringSource http://www.springsource.com/repository
  2. Fusesource http://repo.fusesource.com/

如果找不到OSGi啟用的版本。 您可以繼續使用pax工具 - PaxConstruct或使用aQute的Bnd工具

  • 從現有JAR存檔創建新的插件項目。

在此輸入圖像描述

  • 添加要導出的jar文件

在此輸入圖像描述

  • 單擊“下一步”並命名項目。

在此輸入圖像描述

  • 注意:
  • 確保在目標平台中選擇OSGI框架。
  • 將JAR壓縮文件解壓縮到項目取消選擇 - >取消選擇它,將導出JAR的所有包

  • 如果解壓縮JAR包到項目選中 ,那么你就需要手動所需的軟件包出口的MANIFEST.MF文件。

點擊完成。 您將在工作區中找到名為transport-5.1.1的項目。 您也可以驗證,JAR的所有包都在MANIFEST.MF文件中導出。

Eclipse Bundle Recipe項目提供了一種基於Maven的方法,用於將OSGi元數據添加到從Maven存儲庫中使用的JAR。

它的核心是它使用了bnd工具 這個工具就像一把瑞士軍刀。 它分析jar和類文件並正確計算包導入和導出。 你應該使用bnd自己轉換專有的罐子。 可以在Maven Central中找到

遲到派對:

如果您正在使用Gradle ,則可以在應用osgi-run插件時將jar添加為項目的正常依賴項。

osgi-run插件將透明地將jar包裝成一個包,導出其中的每個包並計算其所有導入。 由於Gradle將知道jar的傳遞依賴性,如果有必要,它也會對它們做同樣的事情。

jar將成為OSGi運行時osgi-run創建的一部分,然后您可以使用gradle runOsgigradle createOsgi ,然后執行run.shrun.bat腳本。

當然,實際包裝是由OSGi世界的瑞士刀Bnd完成的。

如果要配置包裝的發生方式(通常應該導入/導出的內容),可以在Gradle構建文件中輕松完成,有關詳細信息,請參閱文檔

例:

wrapInstructions {
    // use regex to match file name of dependency
    manifest( "c3p0.*" ) {
        // import everything except the log4j package - should not be needed
        instruction 'Import-Package', '!org.apache.log4j', '*'
        instruction 'Bundle-Description', 'c3p0 is an easy-to-use library for making traditional ' +
                'JDBC drivers "enterprise-ready" by augmenting them with functionality defined by ' +
                'the jdbc3 spec and the optional extensions to jdbc2.'
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM