¿Cuál es el significado del tipo "bundle" en una dependencia maven?


¿Cuál es el significado de" bundle", por ejemplo, en esta dependencia:

<dependency>
    <groupId>org.apache.abdera</groupId>
    <artifactId>abdera-core</artifactId>
    <version>1.1.2</version>
    <type>bundle</type>
    <scope>compile</scope>
</dependency>
Author: mmehl, 2011-03-22

1 answers

Este tipo de artefacto es un paquete OSGi, típicamente producido usando el maven-bundle-plugin que es parte de Apache Felix.

El plugin trata todas las clases disponibles para su módulo (clases propias del módulo, clases proporcionadas por dependencias, otras clases en el classpath) como un conjunto gigante, luego le permite seleccionar un subconjunto de esas clases para agruparlas en un jar. También crea la información de manifiesto necesaria para hacer del artefacto un OSGi paquete.

Así que el artefacto que estás extrayendo al usar esta dependencia es un jar, sin embargo, es un jar construido al elegir un subconjunto de un conjunto mucho más grande de clases, no solo las clases que se definieron dentro del módulo abdera-core.

Si echas un vistazo a el pom del proyecto abdera verás la configuración maven-bundle-plugin que te dará una idea de qué clases se han añadido al paquete y cuáles se han retenido.

 71
Author: joelittlejohn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-02 08:55:48