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 ファイルからの依存関係はすべて、ランタイム時に自動的に解決されます。