【问题标题】:Force OSGi package to be imported by maven-bundle-plugin / BND通过 maven-bundle-plugin / BND 强制导入 OSGi 包
【发布时间】:2011-03-06 21:26:57
【问题描述】:

我尝试使用 maven-bundle-plugin(使用 BND)打包 OSGI 包。

要正常运行,bundle 必须在开发期间导入不在类路径中的包(因为对象引用将作为“类”引用传递给 bundle 方法)。

我没有设法在 pom.xml 或 *.bnd 文件中配置“Import-Package”声明,以便将包包含在 MANIFEST 的 OSGI Import-Package 部分中。我虽然

Import-Package: de.foo.bar,*

应该可以完成这项工作,但由于 de.foo.bar 不在类路径中(或者最好不要在代码中声明为导入),它不会被带到 MANIFEST。

有人知道如何在 OSGi Import-Package MANIFEST 声明中强制包可用。

感谢和问候 克劳斯

【问题讨论】:

    标签: java osgi


    【解决方案1】:

    我终于找到了解决办法

    Import-Package: de.foo.bar;resolution:=optional,*
    

    即使包不是由包代码导入的,也会将“de.foo.bar”放在包 MANIFEST.MF 的“Import-Package”声明中。

    【讨论】:

    • 你在哪里指定的?当我将它添加到 POM 时它不起作用。
    • @skaffman 我在 maven-bundle-plugin(版本 2.1.0)配置的 <Import-Package> 部分添加了它。我用逗号(,)将不同的包分开,用分号(;)将resolution参数与它所属的包分开。
    猜你喜欢
    • 2016-10-03
    • 2012-08-31
    • 2010-11-19
    • 2016-07-20
    • 2011-05-21
    • 2013-02-10
    • 2017-01-02
    • 2010-11-25
    • 2016-09-21
    相关资源
    最近更新 更多