web-dev-qa-db-ja.com

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

この依存関係での「バンドル」の意味は何ですか:

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

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

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

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

abderaプロジェクトのpom を見ると、maven-bundle-plugin構成は、どのクラスがバンドルに追加され、どのクラスが保留されているかを知ることができます。

79
joelittlejohn