maven-2 - 使用 maven-bundle-plugin 将 JAR 嵌入到 OSGi 包中

标签 maven-2 osgi

我正在尝试使用 maven-bundle-plugin 的特性将一些 JAR 嵌入到单个 OSGi 包中。

令我担心的是,所有嵌入式 JAR 包都被放入生成的 MANIFEST.MF 的 Import-Package header 中。

如果我明确指定只使用我需要的包,就像下面的代码片段:

Import-Package: org.osgi.framework

构建失败并出现 BND 错误(未解析的引用)。

所以,这里的问题是如何使用我需要的带有“Import-Package” header 的嵌入式 JAR 构建包?

最佳答案

在你的类中导入的所有包都将由 bnd 导入。也许您不希望导入这些包,因为您知道在运行时您将不需要它们。如果您无法阻止 bnd 导入它们,您可以将它们设为可选,以便您的包仍然可以解析,即使它们不是由另一个包提供的(在线时)。尝试添加这个:

<Import-Package>*;resolution:=optional<Import-Package>

到你的 maven bnd 在 maven 中的配置。

关于maven-2 - 使用 maven-bundle-plugin 将 JAR 嵌入到 OSGi 包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1378492/

相关文章:

maven - 使用 Maven 复制文件的最佳实践

eclipse - 如何让 Eclipse 获取 Tomcat 类路径中的所有资源?

java - Maven 程序集插件不再生成 jar-with-dependencies,为什么?

java - 如何在不使用本地安装的工件的情况下构建

osgi - 从 OSGi 包获取资源

java - 单元测试 OSGi 组件

java - 无法检索插件配置的组件配置器/工件已重新定位到 commons-io :commons-io:1. 3.2

osgi - 影响最小的 OSGi 容器

osgi - 从 Java 访问 Karaf cfg 文件中的属性?

java - 最好使用类型或属性在 OSGi 声明式服务之间进行选择吗?