在针对目标平台开发 RCP 应用程序时,我(和别的 https://stackoverflow.com/questions/10001143/eclipse-rcp-target-platform-bundle-org-eclipse-ui-views-properties-tabbed-can/10014934#comment12809771_10014934)经常会遇到需要从 Eclipse 发布软件站点添加的依赖项。每当插件包含在我的 IDE 中但不包含在我的目标平台中时,当我尝试从产品定义运行该应用程序时,我会收到一个警告屏幕,通知我无法解析此类包。
“没问题,只需从 Eclipse 下载站点将包含插件的功能添加到目标平台,并将需要的插件添加到 Plug-in Project/Feature Project 中即可,whathaveyou....”
但是,据我所知,没有简单的方法(例如网站)来找出哪个功能包含哪个插件。例如,为了添加org.eclipse.ui.views.properties.tabbed
,我需要知道这个插件包含在Eclipse Platform SDK
功能(除其他外)。
到目前为止,我还没有找到一种简单的方法来找出哪个功能包含哪个插件。我通常从谷歌搜索插件名称开始,然后尝试在搜索结果中找到教程或类似内容,这可能会告诉我要包含哪些功能才能访问该插件。当然,这可能很乏味。
所以我的问题是:是否有更好的、甚至是官方(或官方)的方法来快速、简单地找到这些信息?
如果启动 p2 控制台,您可以使用 p2 查询语言来查找依赖于捆绑包的所有功能。我的例子是在 Eclipse Juno (4.2) 中:
- 在控制台视图下切换到OSGi控制台
- ss p2.console # 查找控制台捆绑包编号
- 菲利克斯:开始-t控制台包编号
现在您可以发出 p2 查询。要查找当前安装中包含哪些功能org.eclipse.jface, 您可以使用:
osgi> provlpquery this "select(parent | parent.properties['org.eclipse.equinox.p2.type.group'] == true && parent.requirements.exists(rc | everything.exists(iu | iu.id == 'org.eclipse.jface' && iu ~= rc)))" true
org.eclipse.e4.rcp.feature.group 1.1.0.v20120521-2329-8yFTIGF3GGduEYqkQB9M3DKn
org.eclipse.e4.tools.css.spy.feature.feature.group 0.12.0.v20111206-1509-17B-7w3123161302752
要找出包含哪些功能org.eclipse.ui.views.properties.tabbed您可以使用:
osgi> provlquery http://download.eclipse.org/releases/juno "select(parent | parent.properties['org.eclipse.equinox.p2.type.group'] == true && parent.requirements.exists(rc | everything.exists(iu | iu.id == 'org.eclipse.ui.views.properties.tabbed' && iu ~= rc)))" true
org.eclipse.amp.amf.feature.group 0.9.0.v20120528-0244
org.eclipse.bpel.feature.feature.group 1.0.1.v20120606-0845-CI
org.eclipse.jwt.feature.feature.group 1.2.0.v201205310546-7O7i-FK_Qj4QkVn3kW9q
org.eclipse.platform.feature.group 4.2.0.v20120528-1648-9JF7BHV8FyMteji0MoOeOuU6sAnxIeYtKNM1dK
org.eclipse.ptp.etfw.tau.feature.group 6.0.0.201206052145
org.eclipse.tcf.te.feature.feature.group 1.0.0.201206051725
org.eclipse.tcf.te.tcf.feature.feature.group 1.0.0.201206051725
在这种情况下,org.eclipse.platform.feature.group是最正确的。
第一个示例是在运行的 eclipse 中查询配置文件,因此它使用provlp查询这个。第二个示例指定外部 p2 存储库,因此它使用provlquery 仓库.
See http://wiki.eclipse.org/Equinox_p2_Console_Users_Guide http://wiki.eclipse.org/Equinox_p2_Console_Users_Guide有关 p2 控制台的更多信息。有很多黑魔法正在发生:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)