我已经成功地使用独立的bnd工具从jar文件创建了一个OSGi包。
现在,我想从.class文件开始创建一个包。通过查看一些官方的bnd文档,我找不到任何东西来做这件事。我想我正在寻找类似于-classpath: output.jar的东西,它可以适用于.class文件。
发布于 2019-02-05 22:57:25
有不同的选项: Workspace (包括Gradle构建)、独立Gradle、Maven和bnd独立工具。我非常喜欢Bndtools工作区模型,因为它是用户最友好的。大量的支持,完全保真度与gradle没有任何额外的工作,交互式调试,远程调试,打包和活跃的社区。它基于Eclipse。
下面的链接应该可以帮助您入门:
更新
如果您只想使用bnd命令行,那么就简化了很多事情,但也需要处理更多的事情。你想念bndtools的美好世界:-
即使如此,你还是有选择的余地。bnd可用于构建工作空间模型设置。在本例中,您遵循bndtools、Workspace教程等的规则。在该模型中,您可以在工作区或项目目录中使用bnd构建、编译和许多其他命令。
如果您还想跳过这些操作,您将得到一个bnd,它只从一个bnd属性文件生成一个JAR。在这种情况下,必须使用以下方法指定所有依赖项:
-classpath bin/,jar/a.jar, jar/b.jar然后,您可以使用所有的Builder指令。
-includeresource
Private-Package
Export-Package
-exportcontents
...所有包头等。大多数垂直化和构建应该工作类似于Bndtools工作区示例。当然,你错过了发射和其他许多功能。然而,我听说有人用这种方式构建了一个庞大的代码库.
下面的URL展示了如何使用这个URL的一些例子:https://bnd.bndtools.org/chapters/160-jars.html
发布于 2019-02-05 15:40:33
如果我理解您想要做的事情,可以选择设置一个maven项目并利用bnd-maven-plugin (如描述的这里 )。基本上,在pom的build/plugins部分添加以下代码片段就足够了:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>bnd-process</goal>
</goals>
</execution>
</executions>
</plugin>有关基于maven的方法的完整示例,您可以参考OSGi enRoute网站:https://enroute.osgi.org/Tutorial/。
https://stackoverflow.com/questions/54537184
复制相似问题