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

91

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>
Zeemee
la source

Réponses:

83

Ce type d'artefact est un bundle OSGi, généralement produit à l'aide du maven-bundle-plugin qui fait partie d' 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 fichier jar. Il crée également les informations de manifeste nécessaires pour faire de l'artefact un ensemble OSGi.

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

Si vous regardez le pom du projet abdera, vous verrez la maven-bundle-pluginconfiguration qui vous donnera une idée des classes qui ont été ajoutées au bundle et de celles qui ont été retenues.

joelittlejohn
la source