1
我有一個OSGI
包,它依賴於第三方庫,我不想在容器中部署該庫,我寧願將它嵌入到我的包中。在OSGI中嵌入傳遞依賴關係
當然,該庫有它自己的依賴關係,我也想嵌入它們。
我使用的Maven Bundle Plugin
:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Description>${project.description}</Bundle-Description>
<Bundle-Vendor>${bundle.vendor}</Bundle-Vendor>
<Meta-Persistence>...</Meta-Persistence>
<Export-Package>...</Export-Package>
<Import-Package>...</Import-Package>
<Embed-Dependency>3rd-Party</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
</instructions>
</configuration>
</plugin>
結果,3rd-Party
嵌入所產生的捆綁,而不是它的傳遞依賴,彷彿<Embed-Transitive>true</Embed-Transitive>
沒有任何效果。
所以我有一些問題
- 這是一個過渡的方式嵌入第三方庫的正確方法是什麼?
- 這是否照顧生成的Manifest文件(不導入屬於第三方庫及其依賴項的包)?
謝謝
Hello Christian,所以你認爲指定第三方庫的確切名稱存在問題? – isco
至於嵌入的軟件包的導入,當我嵌入依賴關係時,導入的軟件包列表增長非常快,我認爲這個插件沒有處理這個問題 – isco
許多庫的一個大問題是它們使用了很多可選依賴。如果你只是簡單地嵌入這樣一個庫,那麼你也可以得到可選的代碼。這樣的樹可以長得很快。如果這是你的情況,你知道你不需要一些可選的代價,那麼你可以嘗試在maven中排除它們。 –