パッケージタイプを変更せずにOSGiメタデータを既存のプロジェクトに追加するで説明されているように、maven warプラグインを使用して戦争を構築し、bndプラグインを使用してそれをオーバーレイするという問題があります。 このプロジェクトは、次の依存関係を定義します。
<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 はそのバージョン範囲をどのように決定するのですか? 2 つのマイナー リリース間で、バージョン制限なしからその特定の範囲に移行するために何かが変更されたため、bnd がその決定を行う方法を理解することは、この特定の問題が何であるかを発見するのに役立つと思います。