0

我想知道 bnd 2.1.0 是否可以在 Import-Package 中生成清单:我们有两个名称相同但版本不同的包。这个动作有可能而且有意义吗? Import-Package: 'com.sample.logger;version="1.0.0",com.sample.logger;version="[2,3)"'

4

1 回答 1

2

如果可能,您的程序如何决定使用哪个包?此外,您的示例中的版本范围是不同的,基本上您要求 com.sample.logger 包的版本等于 1.0.0并且同时大于或等于 2小于 3。

然而,可行且有效的方法是让多个捆绑包以不同的版本(例如 1.2.3 和 2.0.0)导出相同的包。另一个需要这个包的包可以在其 Import-Package 语句中定义它需要的确切版本(或当然是版本范围)。像这样,OSGi 框架可以确保包之间的连接是正确的。

例如,像这样,您可以同时使用旧版本的捆绑软件和新版本的捆绑软件,而不会出现任何问题(对于非 OSGi java 中的“平面”类路径,您永远无法做到这一点)。

也许这就是你的意思?

于 2013-11-18T09:51:00.843 回答