我已经成功地使用独立的bnd工具从jar文件创建OSGi捆绑包。

现在,我想从.class文件开始创建一个包。
通过查看一些官方的bnd文档,我找不到任何可以做到这一点的东西。
我想我正在寻找类似-classpath: output.jar的东西,它可以用于.class文件。

最佳答案

有不同的选项:Workspace bndtools(包括Gradle构建),Standalone Gradle,Maven和bnd Standalone。我强烈喜欢Bndtools工作区模型,因为它对用户最友好。大量支持,无需任何额外工作即可完全保真地进行交互,交互式调试,远程调试,打包和活动社区。它基于Eclipse。

以下链接应该可以帮助您入门:


这里的工作区:https://bndtools.org/
绑定手册:https://bnd.bndtools.org/
v2Archive enRoute(OSGi不再直接支持此功能,但是拥有大量有关如何使用Bndtools工作区模型的信息)https://v2archive.enroute.osgi.org/book/210-doc.html


更新资料

如果您只想使用bnd命令行,则可以简化很多事情,但是还需要多做一些事情。您会错过bndtools的美好世界:-(

即使那样,您仍然可以选择。 bnd可用于构建工作区模型设置。在这种情况下,您将遵循bndtools工作区教程等的规则。在该模型中,您可以在工作区或项目目录中使用bnd生成,编译和许多其他命令。

如果还希望跳过这些内容,则最终得到的bnd只能从bnd属性文件生成JAR。在这种情况下,您必须使用以下命令指定所有依赖项:

-classpath bin/,jar/a.jar, jar/b.jar


然后,您可以使用所有Builder指令。

-includeresource
Private-Package
Export-Package
-exportcontents
...


所有包标头等。大多数验证和构建应与Bndtools工作区示例相似。当然,您会错过启动和许多其他功能。但是,我听说有人用这种方式构建了大型代码库...

以下URL显示了如何使用此示例:https://bnd.bndtools.org/chapters/160-jars.html

07-27 18:23