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

时间:2011-03-22 10:15:00

标签: maven dependency-management ivy

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

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

1 个答案:

答案 0 :(得分:75)

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

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

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

如果查看the pom for the abdera project,您会看到maven-bundle-plugin配置,它会让您了解哪些类已添加到捆绑包中,哪些类已被阻止。