Was bedeutet der Typ "Bundle" in einer Maven-Abhängigkeit?


91

Was bedeutet "Bündel" zB in dieser Abhängigkeit:

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

Antworten:


83

Diese Art von Artefakt ist ein OSGi-Bundle, das normalerweise mit dem Maven-Bundle-Plugin erstellt wird, das Teil von Apache Felix ist .

Das Plugin behandelt alle für Ihr Modul verfügbaren Klassen (die eigenen Klassen des Moduls, durch Abhängigkeiten bereitgestellte Klassen, andere Klassen im Klassenpfad) als eine riesige Menge und lässt Sie dann eine Teilmenge dieser Klassen auswählen, die in einem Glas gebündelt werden sollen. Außerdem werden die erforderlichen Manifestinformationen erstellt, um das Artefakt zu einem OSGi-Bundle zu machen.

Das Artefakt, das Sie mithilfe dieser Abhängigkeit abrufen, ist ein JAR. Es handelt sich jedoch um ein JAR, das durch Auswahl einer Teilmenge aus einer viel größeren Gruppe von Klassen erstellt wird, nicht nur aus den Klassen, die im abdera-core-Modul definiert wurden.

Wenn Sie sich den POM für das Abdera-Projekt ansehen, sehen Sie die maven-bundle-pluginKonfiguration, die Ihnen eine Vorstellung davon gibt, welche Klassen dem Bundle hinzugefügt und welche zurückgehalten wurden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.