通过BND将Maven POM放入OSGi包装器中



我有一个第三方JAR,我想在OSGi环境中使用它,但它没有适合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中包含了额外的manifest指令,而不是在JAR中包含额外的文件。

但无论如何,有什么方法可以实现我想做的事情吗,使用BND?或者我必须使用另一个重写程序来创建一个带有POM的JAR,然后使用BND来重写,而不是使用它来重写原始JAR?

提前感谢您的帮助。

只需尝试添加:

-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---include和include资源之间的区别

相关内容

  • 没有找到相关文章

最新更新