我有一个想在 OSGi 环境中使用的第三方 JAR,但它没有适合 OSGi 的 MANIFEST.MF。所以,我使用 BND(嗯,BNDTools)来包装它。这很好用,但是:
我还希望能够轻松地将它与 Maven 一起使用(它也没有设置),所以我想包含一个描述其依赖关系的 Maven POM。有没有办法通过 BND 做到这一点?这是我尝试过的:
我查看了各种 Mavenized JAR 的布局,发现它们似乎将 POM 包含在 META-INF/maven/groupId/artifactId 中。例如:
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 中包含额外的清单指令,而不是在 JAR 中包含额外的文件。
但无论如何,有没有办法使用 BND 来完成我想做的事情?或者我是否必须使用另一个重新包装程序来使用 POM 创建一个 JAR,然后使用 BND 重新包装它而不是使用它来重新包装原始 JAR?
提前感谢您的帮助。