【发布时间】: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?
提前感谢您的帮助。
【问题讨论】: