Fundamentals
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

パッケージのエクスポート

OSGiでは、パッケージはデフォルトでプライベートです。 他のモジュールが インポート して使用できるように、パッケージを明示的にエクスポートする必要があります。

パッケージをエクスポートする方法は次のとおりです。

  1. bnd.bndファイルを開きます。

  2. Export-Package:ヘッダを追加します(まだ追加していない場合)。

  3. Export-Package:ヘッダの後にパッケージ名をリストします。

    Export-Package: com.liferay.petra.io,com.liferay.petra.io.unsync
    

Workspaceベースのプロジェクト ( Blade CLI または Liferay Developer Studio を使用) には Bndがあります。 Bndは、OSGiヘッダをbnd.bndファイルからモジュールJARのMETA-INF/MANIFEST.MFファイルにプロパゲートします。

重要

同じパッケージを複数のJARにエクスポートしないでください。 異なるモジュールから同じパッケージをエクスポートすると、予期しない副作用を伴う “分割パッケージ” の問題が発生してしまいます。

Bnd はモジュールのエクスポートされたパッケージを 置換可能にします。 つまり、Bndは、モジュールのエクスポートされたパッケージを、名前は同じだがバージョンが異なる可能性のある、別のモジュールからエクスポートされた互換性のあるパッケージに置き換えます。 Bndは、エクスポートするすべてのパッケージをモジュールに自動的にインポートさせることで、これを可能にします。 このように、モジュールはそれ自体で動作できますが、パッケージの異なる(互換性のある)バージョン、あるいは同じバージョンを提供するモジュールと連携して動作することもできます。 別のモジュールからのパッケージは、他のモジュールとのより良い “配線” 機会を提供する可能性があります。 Peter Kriens のブログ投稿 は代替輸出について説明しています。

モジュールのパッケージを共有できるようになりました。