【问题标题】:Putting a Maven POM in an OSGi wrapper via BND?通过 BND 将 Maven POM 放入 OSGi 包装器?
【发布时间】:2012-08-31 12:58:34
【问题描述】:

我有一个想在 OSGi 环境中使用的第三方 JAR,但它没有适合 OSGi 的 MANIFEST.MF。所以,我使用 BND(嗯,BNDTools)来包装它。这一切都很好,但是:

我还希望能够轻松地将它与 Maven 一起使用(它也没有设置),所以我想包含一个 Maven POM 来描述它的依赖关系。有没有办法通过 BND 做到这一点?这是我尝试过的:

我查看了各种 Mavenized JAR 的布局,发现它们似乎在 META-INF/maven/groupId/artifactId 中包含了 POM。例如:

META-INF/maven/com.example/com.example.greatapilibrary/pom.xml.

于是,我做了一个POM,放在这样的地方,然后修改bnd.bnd有:

-include: META-INF/maven/com.example/com.example.greatapilibrary/pom.xml

不过,生成的 JAR 不包含该文件。

我认为(但不是 100% 肯定)我可能误读了 BND 关于“-include”的文档 - 看起来它可能是为了在生成的 MANIFEST.MF 中包含额外的清单指令,而不是在罐子。

但无论如何,有没有办法使用 BND 来完成我想做的事情?还是我必须使用另一个重新包装程序来使用 POM 创建一个 JAR,然后使用 BND 重新包装 that 而不是使用它来重新包装原始 JAR?

提前感谢您的帮助。

【问题讨论】:

    标签: maven osgi bnd bndtools


    【解决方案1】:

    尝试添加:

    -includeresource: META-INF/maven/com.example/com.example.greatapilibrary/pom.xml=META-INF/maven/com.example/com.example.greatapilibrary/pom.xml 
    

    到你的 bnd.bnd

    此链接解释了includeincluderesource之间的区别(与Include-Resource相同):http://bndtools.org/faq.html#whats-the-difference-between--include-and-include-resource

    【讨论】:

      猜你喜欢
      • 2011-03-06
      • 2010-11-19
      • 2016-10-03
      • 2011-12-31
      • 2013-03-09
      • 2016-10-23
      • 2016-07-24
      • 2011-11-14
      • 2011-12-03
      相关资源
      最近更新 更多