我试图理解RCP的日食e4
的概念
按照教程阅读后,我陷入以下困境:
假设我创建了一个Plugin
项目(未选中Rich Client,未选中Actvator,因此/ src下没有类别等)
插件是Eclipse中最小的可部署和可安装的软件组件。好吧。
现在,我可以创建一个基于Product Configuration
或 Plugins
的{{1}}。
所以Features
提供了插件等,如果我理解正确,Product Configuration
是可选的。假设我是正确的(不知道,是吗?)我在产品配置中添加了依赖关系:
Feature
和org.eclipse.emf.common
并按org.eclipse.emf.ecore
我的产品配置选择为基于插件
我现在还不明白的是,如果我没有定义依赖项 my plugin 的一部分,我在运行应用程序时会得到一个缺少的插件(我已经检查了验证插件在跑之前)。但为什么?该插件已经在产品定义(New)中定义为“Definining Plugin”。为什么我还必须在这里明确地添加它?
无论如何传递,当我尝试启动一个窗口时(是的,我创建了一个Add Required Plugins
并定义了一个New Application Model
)我得到了运行时异常
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
时才能选择此选项。它不适用于插件。
此外,相同的过程,但定义based on Features
和“附加”它作为产品配置的依赖工作!即没有运行时异常,窗口出现。
那发生了什么?功能是否必须?我不明白。我认为它们是可选的。任何人都可以帮我解决这个问题吗?
更新
如果我在Feature
中手动添加org.eclipse.e4.ui.workbench.swt
作为依赖项(并按需要添加),我会得到:
product
答案 0 :(得分:4)
如果您在Eclipse 4上创建基于插件的产品,您仍然需要构成org.eclipse.e4.rcp功能的大多数插件。尝试从http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/features/org.eclipse.e4.rcp/feature.xml
的列表中添加它们