この性質の質問は他に 1 つしかないようですが、その回答によって提案された解決策は私にとって効果的ではありませんでした。Spring Tool Suite (本質的には Kepler 4.3.2 SR2) を IDE として使用して、ネイティブ C++ コードの最新バージョンを含む OSGi フラグメントを開発しています。フラグメントは、このネイティブ コードが統合されることを意図しているさまざまな環境に、さまざまなバージョンのソフトウェアが存在する可能性を考慮して存在します。
ただし、このバージョン番号を表すために使用するカスタム vm 引数が原因で、このフラグメントをエクスポートできません。
マニフェストは次のようになります。
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Windows 64-bit support for Third-Party XYZ 4.12.7
Bundle-SymbolicName: com.ourcompany.oursoftwarepackage.xyz.win64xyz4127
Bundle-Version: 8.6.2.qualifier
Bundle-Vendor: OurCompany
Fragment-Host: com.ourcompany.oursoftwarepackage.xyz
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Eclipse-PlatformFilter: (& (osgi.os=win32) (osgi.arch=x86_64))
Bundle-NativeCode: xyzintegration.dll; selection-filter = "(oursoftwarepackage.xyzVersion=4.12.7)"
Bundle-ClassPath: .
エラーは言う:
フィーチャー org.eclipse.pde.container.feature からの包含の処理: バンドル com.ourcompany.oursoftwarepackage.xyz.win64xyz4127_8.6.2.qualifier の解決に失敗しました.: ネイティブ コード フィルターが満たされていません: xyzintegration.dll; selection-filter="(oursoftwarepackage.xyzVersion=4.12.7)".
選択フィルター句を削除すると、エクスポートされているように見えますが、実際のアーティファクトは生成されません。
上記のリンクから推定した提案は、vmarg を含めることでした。
-Doursoftwarepackage.xyzVersion=4.12.7
プラグイン開発ターゲット環境で。しかし、それは OSGi フレームワークを満たしていないようでした。現在、エクスポートを続行できるようにフラグメントを解決する方法について途方に暮れています。