Qual è il significato del tipo "bundle" in una dipendenza Maven?


91

Qual è il significato di "bundle" ad esempio in questa dipendenza:

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

Risposte:


83

Questo tipo di artefatto è un bundle OSGi, tipicamente prodotto utilizzando il plugin maven-bundle che fa parte di Apache Felix .

Il plugin tratta tutte le classi disponibili per il tuo modulo (le classi del modulo, le classi fornite dalle dipendenze, altre classi sul classpath) come un insieme gigante, quindi ti consente di selezionare un sottoinsieme di quelle classi da raggruppare in un vaso. Crea anche le informazioni manifest necessarie per rendere l'artefatto un bundle OSGi.

Quindi l'artefatto che stai inserendo usando questa dipendenza è un jar, tuttavia è un jar costruito scegliendo un sottoinsieme da un insieme di classi molto più ampio, non solo le classi che sono state definite all'interno del modulo abdera-core.

Se dai un'occhiata al pom per il progetto abdera vedrai la maven-bundle-pluginconfigurazione che ti darà un'idea di quali classi sono state aggiunte al bundle e quali sono state trattenute.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.