我正在尝试使用 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/