在maven依赖中types“bundle”的含义是什么?

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

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

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

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

所以你使用这个依赖的东西是一个jar,但是它是通过从一个更大的一组类中select一个子集而build立起来的,而不仅仅是在abdera-core模块中定义的类。

如果你看看abdera项目的pom,你会看到maven-bundle-pluginconfiguration,它会告诉你哪些类已经添加到了bundle中,哪些已经被阻止了。