8.3. Import-Package ヘッダーが不完全

すべての必要な機能とバンドルがすでにインストールされ、引き続き ClassNotFound エラーが発生する場合、バンドルの MANIFEST.MF ファイルの Import-Package ヘッダーが不完全であることを意味します。maven-bundle-plugin (「既存の Maven プロジェクトの変更」 を参照) は、バンドルの Import-Package ヘッダーを生成するときには非常に便利ですが、以下の点に注意してください。

  • Maven バンドルプラグイン設定の Import-Package 要素に、ワイルドカード * が必ず含まれるようにします。ワイルドカードは、プラグインに Java ソースコードをスキャンするように指示し、パッケージの依存関係のリストを自動的に生成します。
  • Maven バンドルプラグインは動的な依存関係を把握 できません。たとえば、Java コードが明示的にクラ出力ダーを呼び出してクラスを動的にロードする場合、バンドルプラグインはこれを考慮せず、必要な Java パッケージは生成された Import-Package ヘッダーにリストされません。
  • Blueprint XML ファイル (例: OSGI-INF/blueprint ディレクトリー) を定義する場合、Blueprint XML ファイルからの依存関係はすべて、ランタイム時に自動的に解決されます