我是 OSGi 平台的新手。
拥有 OSGi 包 B1
依赖于另一个包 B2
,这很可能不是由容器提供的,我可以将两个包打包在同一个 jar
中吗? ?
如果是:怎么做?如果 jar
会发生什么已安装且 bundle 已安装?
最佳答案
是的,你可以这样做......有点。
通常 OSGi 包是 JAR 文件,因为它们需要有一个 META-INF/MANIFEST.MF。 OSGi 框架无法直接读取您的“多 bundle ”JAR。
但是,在 OSGi 中安装包需要调用 BundleContext.installBundle
方法。该方法有两种形式,一种采用 InputStream 作为参数;此 InputStream 应提供 OSGi 包的内容。因此,您可以获取大 JAR 并使用 JarInputStream 读取它,将各个条目传递给 installBundle
方法。
关于osgi - 在同一个 jar 中打包多个 OSGi 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20148375/