我正在尝试了解e4
RCP 的 Eclipse 概念。
在阅读完教程之后,我陷入了以下困境:
假设我创建了一个Plugin
项目(没有选中富客户端,没有选中 Actvator,因此 /src 下没有类等)
插件是 Eclipse 中最小的可部署和可安装的软件组件。好的。
现在我可以创建一个Product Configuration
基于Plugins
or Features
的。
所以Product Configuration
提供插件等,如果我理解正确,这Feature
是可选的。假设我是正确的(不知道,是吗?)我将依赖项添加到产品配置中:
org.eclipse.emf.common
然后org.eclipse.emf.ecore
按Add Required Plugins
My product confuration is selected to be plugin based。
我现在不明白的是,如果我没有将我的插件定义为依赖项的一部分,那么我在运行应用程序时会丢失一个插件(我在运行之前检查了验证插件)。但为什么?该插件已在产品定义(新)中定义为“定义插件”。为什么我还必须在这里明确添加它?
无论如何,当我尝试启动一个窗口时(是的,我创建了 aNew Application Model
并定义了 a Trimmed Window
)我得到运行时异常
java.lang.RuntimeException: Application "org.eclipse.e4.ui.workbench.swt.E4Application" could not be found in the registry. The applications available are: org.eclipse.equinox.app.error.
at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:248)
at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
我只能假设发生这种情况是因为缺少一个插件,它是:( org.eclipse.e4.ui.workbench.swt
由于启用了插件验证,我得到了这个)
为什么我会得到这个异常?我相信我明白了,因为我没有添加org.eclipse.e4.rcp
as 依赖项。
但我找不到它作为一种选择。事实证明,只有当产品配置为based on Features
. 它不适用于插件。
此外,相同的过程,但定义 aFeature
并将其“附加”为对产品配置的依赖是有效的!即没有运行时异常和窗口出现。
那么发生了什么?功能是强制性的吗?我不明白。我认为它们是可选的。谁能帮我解决这个问题?
更新:
如果我在我得到的手动添加org.eclipse.e4.ui.workbench.swt
为依赖项(并按需要添加)product
:
!ENTRY org.eclipse.osgi 2 0 2012-08-20 18:36:52.044
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2012-08-20 18:36:52.044
!MESSAGE Bundle initial@reference:file:plugins/org.eclipse.e4.ui.workbench.swt_0.10.1.v20120525-2014.jar was not resolved.
!SUBENTRY 2 org.eclipse.e4.ui.workbench.swt 2 0 2012-08-20 18:36:52.044
!MESSAGE Missing required bundle org.eclipse.core.databinding_[1.2.0,2.0.0).