我有一个问题,我正在使用 maven war 插件构建战争并使用 bnd 插件覆盖它,如将 OSGi 元数据添加到现有项目中所述,而不更改打包类型。 该项目定义了以下依赖项:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.12</version>
</dependency>
当我运行构建时,它会在 MANIFEST.MF 中生成以下条目
Import-Package: .., javax.ws.rs.core, ..
一旦我将版本更改为 1.13 或更高版本,Import-Package 条目就会变为:
Import-Package: .., javax.ws.rs;version="[1.1,2)", ..
这对我来说是一个真正的问题,因为我的目标中有 javax.ws.rs.javax.ws.rs-api_2.0.0.m16。这将解决不需要版本的情况下的导入,但在存在范围限制时停止这样做。
所以,我的一般问题是:bnd 如何决定版本范围?两个次要版本之间发生了一些变化,使其从无版本限制变为特定范围,因此我认为了解 bnd 如何做出该决定将有助于我发现这个特定问题是什么。