我有一个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>
没有任何效果一样。
所以我有一些问题
谢谢
答案 0 :(得分:1)
关于嵌入依赖性:如果你看一下felix docs,他们总是使用像;scope=compile|runtime
这样的范围。
也许依赖包的名称也必须符合给定的正则表达式。如果你想嵌入大部分的罐子而只省略一些,你可以嵌入*然后用!来排除一些....
关于清单:maven bundle插件应该注意使导入适应嵌入式软件包。所以不应该为嵌入的包导入。