首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSGi要求-功能和Tycho

OSGi要求-功能和Tycho
EN

Stack Overflow用户
提问于 2014-03-17 09:19:03
回答 2查看 1.1K关注 0票数 0

我创建了一个eclipse插件,它在清单中需要一定的功能:

代码语言:javascript
复制
Require-Capability: osgi.service;filter:="(osgi.service=my.client.SessionService)"

我的目标平台包含另一个提供此功能的包。当我尝试用Tycho构建这个程序时,我得到了以下例外:

代码语言:javascript
复制
[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功能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-17 12:51:56

这很可能是由p2中的一个bug引起的:

bug.cgi?id=313553

Tycho用来解决依赖关系的方法。

票数 0
EN

Stack Overflow用户

发布于 2014-03-26 08:10:08

感谢jsievers,他提供了正确的eclipse错误条目。在bug条目中有一个指向自定义p2元数据项目的链接。长话短说,要使p2正确地处理功能,您必须编写一个p2通知文件(p2.inf)来提供功能建议。

为了解决上述问题中描述的能力解析问题,我必须执行以下操作。在提供的包中,必须有一个META/p2.inf文件,其内容如下:

代码语言:javascript
复制
provides.0.namespace = osgi.serviceloader
provides.0.name = my.client.SessionService

需要的包中,必须有一个META/p2.inf文件,其内容如下:

代码语言:javascript
复制
requires.0.namespace = osgi.serviceloader
requires.0.name = my.client.SessionService

在本文中可以找到更多的功能建议选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22450509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档