我创建了一个eclipse插件,它在清单中需要一定的功能:
Require-Capability: osgi.service;filter:="(osgi.service=my.client.SessionService)"我的目标平台包含另一个提供此功能的包。当我尝试用Tycho构建这个程序时,我得到了以下例外:
[ERROR] Internal error: java.lang.RuntimeException: org.osgi.framework.BundleException: Bundle my.client.rxp cannot be resolved
[ERROR] Resolution errors:
[ERROR] Bundle my.client.rxp - Missing Constraint: Require-Capability: osgi.service; filter="(osgi.service=my.client.SessionService)"Tycho似乎无法处理OSGi功能。只要我将包作为所需的包添加到eclipse插件中,一切都会正常工作。但是这是没有意义的,因为eclipse插件不应该依赖于另一个实现包。如何在Tycho构建中使用OSGi功能?
发布于 2014-03-17 12:51:56
发布于 2014-03-26 08:10:08
感谢jsievers,他提供了正确的eclipse错误条目。在bug条目中有一个指向自定义p2元数据项目的链接。长话短说,要使p2正确地处理功能,您必须编写一个p2通知文件(p2.inf)来提供功能建议。
为了解决上述问题中描述的能力解析问题,我必须执行以下操作。在提供的包中,必须有一个META/p2.inf文件,其内容如下:
provides.0.namespace = osgi.serviceloader
provides.0.name = my.client.SessionService在需要的包中,必须有一个META/p2.inf文件,其内容如下:
requires.0.namespace = osgi.serviceloader
requires.0.name = my.client.SessionService在本文中可以找到更多的功能建议选项。
https://stackoverflow.com/questions/22450509
复制相似问题