Що означає тип “bundle” у залежності від maven?


91

Що означає "пакет", наприклад, у цій залежності:

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

Відповіді:


83

Цей вид артефактів - це набір OSGi, який зазвичай виробляється за допомогою плагіна maven-bundle, який є частиною Apache Felix .

Плагін розглядає всі класи, доступні для вашого модуля (власні класи модуля, класи, що надаються залежностями, інші класи на шляху до класу) як один гігантський набір, а потім дозволяє вибрати підмножину цих класів, які потрібно об’єднати в банку. Він також створює необхідну маніфестну інформацію, щоб зробити артефакт пакетом OSGi.

Отже, артефактом, який ви втягуєте за допомогою цієї залежності, є jar, однак це jar, побудований шляхом вибору підмножини з набагато більшого набору класів, а не лише класів, визначених всередині модуля abdera-core.

Якщо ви подивитесь на пом для проекту abdera, ви побачите maven-bundle-pluginконфігурацію, яка дасть вам уявлення про те, які класи були додані до набору, а які затримані.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.