Maven依存関係の「バンドル」タイプの意味は何ですか?


91

たとえば、この依存関係における「バンドル」の意味は何ですか。

<dependency>
    <groupId>org.apache.abdera</groupId>
    <artifactId>abdera-core</artifactId>
    <version>1.1.2</version>
    <type>bundle</type>
    <scope>compile</scope>
</dependency>

回答:


83

この種のアーティファクトはOSGiバンドルであり、通常はApache Felixの一部であるmaven-bundle-pluginを使用して作成されます。

プラグインは、モジュールで使用できるすべてのクラス(モジュール自体のクラス、依存関係によって提供されるクラス、クラスパス上の他のクラス)を1つの巨大なセットとして扱い、それらのクラスのサブセットを選択してjarにバンドルします。また、アーティファクトをOSGiバンドルにするために必要なマニフェスト情報も作成します。

したがって、この依存関係を使用して取得するアーティファクトはjarですが、abdera-coreモジュール内で定義されたクラスだけでなく、はるかに大きなクラスのセットからサブセットを選択することによって構築されたjarです。

abderaプロジェクトのpomを見るとmaven-bundle-pluginどのクラスがバンドルに追加され、どのクラスが保留されているかがわかる設定が表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.