web-dev-qa-db-fra.com

Quelle est la signification du type "bundle" dans une dépendance maven?

Quelle est la signification de "bundle" par exemple dans cette dépendance:

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

Ce type d'artefact est un bundle OSGi, généralement produit à l'aide de maven-bundle-plugin qui fait partie de Apache Felix .

Le plugin traite toutes les classes disponibles pour votre module (les propres classes du module, les classes fournies par les dépendances, les autres classes sur le chemin de classe) comme un ensemble géant, puis vous permet de sélectionner un sous-ensemble de ces classes à regrouper dans un bocal. Il crée également les informations de manifeste nécessaires pour faire de l'artefact un bundle OSGi.

Donc, l'artefact que vous tirez en utilisant cette dépendance est un pot, mais c'est un pot construit en choisissant un sous-ensemble à partir d'un ensemble beaucoup plus large de classes, pas seulement les classes qui ont été définies dans le module abdera-core.

Si vous regardez le pom pour le projet abdera vous verrez le maven-bundle-plugin configuration qui vous donnera une idée des classes qui ont été ajoutées au bundle et qui ont été retenues.

79
joelittlejohn