【发布时间】:2018-10-24 16:14:28
【问题描述】:
我的 OSGi 应用程序需要一个 jar(sample;version=A),并且我必须使用相同的 jar(sample;version=B) 来开发我开发的新包。
示例 jar 具有一些增强功能,因此我不能只升级现有的捆绑包以与 version=B 对齐。
我决定将带有版本 B 的 Sample 添加为嵌入式依赖项,因此我开发的较新捆绑包指的是最新版本,而现有捆绑包使用版本 A 运行。不想将这两个版本都带到运行时瞬间。
<Embed-Directory>lib</Embed-Directory>
<Bundle-ClassPath>.,lib</Bundle-ClassPath>
<Import-Package>*</Import-Package>
<Embed-Dependency>sample;scope=compile|runtime</Embed-Dependency>
在运行时,始终只引用旧版本的 sample(version=A)。有没有办法让包引用嵌入依赖项而不是从运行时导出的包中获取?
Edit1:我还可以看到示例中存在的包是私有包的一部分。应用程序是否可以引用私有包而不是引用 OSGi 容器提供的运行时包。
【问题讨论】:
标签: osgi osgi-bundle