在maven依赖中输入"bundle"是什么意思?

Zee*_*mee 87 ivy dependency-management maven

"bundle"的含义是什么,例如在这种依赖中:

<dependency>
    <groupId>org.apache.abdera</groupId>
    <artifactId>abdera-core</artifactId>
    <version>1.1.2</version>
    <type>bundle</type>
    <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

joe*_*ohn 81

这种工件是一个OSGi包,通常使用maven-bundle-plugin生成,它是Apache Felix的一部分.

该插件将您的模块可用的所有类(模块自己的类,依赖项提供的类,类路径上的其他类)视为一个巨型集,然后让您选择要捆绑到jar中的这些类的子集.它还创建必要的清单信息,以使工件成为OSGi包.

因此,使用此依赖项所引入的工件是一个jar,但它是通过从更大的类集中选择子集而不仅仅是在abdera-core模块中定义的类而构建的jar.

如果您查看abdera项目的pom,您将看到maven-bundle-plugin配置,它将让您了解哪些类已添加到捆绑包中,哪些类已被阻止.