Что означает тип "связка" в зависимости maven? - PullRequest
84 голосов
/ 22 марта 2011

Что означает «связка», например, в этой зависимости:

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

1 Ответ

77 голосов
/ 23 марта 2011

Этот тип артефакта представляет собой комплект OSGi, обычно производимый с использованием maven-bundle-plugin , который является частью Apache Felix .

Плагин обрабатывает все классы, доступные вашему модулю (собственные классы модуля, классы, предоставляемые зависимостями, другие классы в пути к классам) как один гигантский набор, а затем позволяет выбрать подмножество этих классов для объединения вбаночкаОн также создает необходимую информацию манифеста, чтобы сделать артефакт пакетом OSGi.

Таким образом, артефакт, который вы извлекаете с помощью этой зависимости, является банкой, однако это баночка, созданная путем выбора подмножества из гораздо большегонабор классов, а не только классы, которые были определены внутри модуля abdera-core.

Если вы посмотрите на pom для проекта abdera , вы увидите maven-bundle-pluginконфигурация, которая даст вам представление о том, какие классы были добавлены в комплект, а какие были задержаны.

...