当开发针对目标平台的RCP应用程序,我( 和其他人 )经常遇到哪些需要从Eclipse的添加发布软件网站的相关性。 每当一个插件都包含在我的IDE,但不是我的目标平台,我尝试从产品定义,我得到一个警告屏幕的应用程序,通知我这等捆绑不能得到解决。
“没问题,只要添加包含插件从Eclipse下载站点到目标平台的功能,以及所需要的插件添加到插件项目/功能项目,whathaveyou ......”
但是,据我所知,有没有简单的方法(如网站),以找出哪些功能包括插件。 例如,为了增加org.eclipse.ui.views.properties.tabbed
,我需要知道,这个插件包含在Eclipse Platform SDK
功能(其中包括)。
到现在为止我还没有找到一个简单的方法来找出哪些功能包含插件。 我通常用google搜索插件名称开始了,并试图找到一个教程或在搜索结果中相似,这可能会告诉我哪些功能,以获得该插件包括。 这可能是乏味的,当然。
所以我的问题是:有没有找到这个信息快速和简单的美好,甚至是官方(或管闲事)的方式?
如果你火了P2控制台,您可以使用P2查询语言来查找取决于捆绑的所有功能。 我的例子是Eclipse的Juno(4.2):
- 切换到OSGi控制台的控制台视图
- SS p2.console#找到控制台包号
- 菲利克斯:启动-t consoleBundleNumber
现在,您可以发出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是最正确的一个。
第一个例子是在查询运行蚀简档,所以它使用provlpquery此 。 第二个例子是指定外部P2储存库,所以它使用provlquery回购 。
见http://wiki.eclipse.org/Equinox_p2_Console_Users_Guide有关P2控制台上的更多信息。 这里是怎么回事:-)大量的黑魔法
还有一个GUI工具,可以回答这个问题, p2browser :
- 添加相关的P2存储库
- 通过IU,能力或(Java)的包过滤器
- 在相关IU单击鼠标右键,选择“打开包括功能”
该实用程序还用于搜索插件/提供特定的Java包捆有用。
虽然开发了不少RCP应用程序,我已经不能跨越这个问题的方便的解决方案来。 插件的良好来源是Eclipse IDE本身。 要了解我发现在插件清单编辑器非常有帮助的相关性分析功能的依赖关系。 另外一个可以验证的通过验证 产品配置 ...按钮将产品配置编辑器的右上角。 如果插件丢失它们被列为结果。
其中一个方法可行,我至今没有试图通过指定一个或多个软件的网站,而不是依赖于本地下载功能和插件定义一个目标平台 。
当然,这不是你要找的答案,但恕我直言有针对此问题没有真正解决问题。 只是有工具和车辆(以上部分所述),这有助于缓解疼痛构建RCP应用程序的目标平台的时候。
基本思路:获取的所有功能定义,然后通过它进行搜索。
更详细的说明: http://divby0.blogspot.com/2010/10/howto-find-feature-that-contains-plugin.html
看起来并不像一个有效的解决方案,但还是它的东西。
文章来源: How to find out which feature contains a needed plug-in on an Eclipse download site