[英]How to access bundle in OSGi/Bndtools that only referenced by reflections?
[英]How to convert jar to OSGi bundle using eclipse and bndtools
我正在寻找一个循序渐进的指南,使用eclipse bndtools插件将jar转换为OSGi包。 我知道可以使用命令行使用bnd来完成它,但很高兴知道如何通过IDE执行相同的操作。
我可能会遗漏一些东西,但本教程仅解释了如何从头开始创建项目。
按照文章从标准jar创建Eclipse插件(OSGi包)来实现这一目标。 虽然这种方法不使用Bnd,但你可以实现你想要的。
总之,您可以执行以下操作:
通过选择File-> New -> Project...-> Plug-in Development -> "Plug-in from Existing JAR Archives"
创建一个新的插件项目
在这个新插件(包)中选择您想要的罐子。 输入其他插件数据(名称,版本,ID等)。
Unzip the JAR archive into the project
。 然后按完成。 取消选中复选框Unzip the JAR archive into the project
,阻止从Jar中提取通常不必要的类文件。
编辑:导出捆绑包以将其安装到OSGi运行时。 选择您的包,然后选择File -> Export -> Plug-in Development -> "Deployable plug-ins and fragment"
。
取消选中导出来源复选框。
-classpath: jar/htmlcleaner-2.2.jar, jar/htmlcleaner-2.2-src.zip
Export-Package: org.htmlcleaner.*;version=1.0
Import-Package: org.apache.tools.ant;resolution:=optional,\\
org.jdom;resolution:=optional,\\
*
Bundle-Version: 2.2.1
保存此文件后,查看生成的目录,瞧,有你的捆绑! 您可以为要包装的任意数量的包重用相同的项目。
然后,您可以将捆绑包发布到其中一个存储库。 选择bnd.bnd文件,然后使用上下文菜单选择Release Bundle。
编辑:NB您不能直接使用来自其他项目的'wrap'项目,因为Eclipse需要源树才能工作。 有两种解决方法:
https://github.com/bndtools/bndtools/wiki/How-to-Wrap-Bundles
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.