maven依赖项中类型“bundle”的含义是啥?

Posted

技术标签:

【中文标题】maven依赖项中类型“bundle”的含义是啥?【英文标题】:What is the meaning of type "bundle" in a maven dependency?maven依赖项中类型“bundle”的含义是什么? 【发布时间】:2011-07-20 08:50:32 【问题描述】:

“bundle”是什么意思,例如在这个依赖中:

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于maven依赖项中类型“bundle”的含义是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Maven 依赖项中定位资源的 URI 方案?

Mixfile 依赖项中的“runtime: false”是啥意思?

package.json 依赖项中的“下一个”到底是啥意思?

如何找出是不是在 Maven 应用程序中使用了依赖项中的任何类?

为啥即使我的 maven 依赖项中有第三方依赖项,也只需要 OSGi 容器中的第三方依赖项?

在 Maven 依赖项中显示省略的版本:树?