java - Eclipse e4 应用程序/插件中的功能是否可选?

标签 java eclipse eclipse-plugin swt eclipse-rcp

我正在尝试理解用于 RCP 的 eclipse e4 的概念。
阅读完教程后,我陷入了以下困境:
假设我创建了一个 Plugin 项目(没有未选中 Rich Client,未选中 Actvator,所以/src 等下没有类)
插件是 Eclipse 最小的可部署和可安装软件组件。好的。
现在我可以创建一个基于PluginsFeaturesProduct Configuration
所以 Product Configuration 提供了插件等,如果我理解正确的话,Feature 是可选的。假设我是正确的(不知道,对吗?)我将依赖项添加到产品配置中:
org.eclipse.emf.commonorg.eclipse.emf.ecore 并按 Add Required Plugins
我的产品配置被选择为基于插件
我现在不明白的是,如果我没有将 我的插件 定义为依赖项的一部分,那么当我运行该应用程序时,我会得到一个缺少的插件(我已经检查了验证插件运行前)。但为什么?该插件已在产品定义(新)中定义为“Definining Plugin”。为什么我还必须在这里明确添加它?

无论如何,当我尝试启动一个窗口时(是的,我已经创建了一个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(我得到这个是因为启用了插件验证)

enter image description here

为什么我会得到这个异常?我相信我明白了,因为我没有添加 org.eclipse.e4.rcp 作为依赖项。
但我找不到它作为一个选项。事实证明,只有当产品配置是 based on Features 时,才可以选择它。它不适用于插件。
此外,相同的过程只是定义了一个 Feature 并将其作为依赖项“附加”到产品配置中! IE。没有运行时异常,窗口出现。

那么发生了什么?功能是强制性的吗?我不明白。我认为它们是可选的。谁能帮我解决这个问题?

更新:
如果我在 product 中手动添加 org.eclipse.e4.ui.workbench.swt 作为依赖项(并按需要添加),我得到:

enter image description here

!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).

最佳答案

如果您在 Eclipse 4 上创建基于插件的产品,您仍然需要包含 org.eclipse.e4.rcp 特性的大部分插件。尝试从 http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/features/org.eclipse.e4.rcp/feature.xml 中的列表中添加它们

关于java - Eclipse e4 应用程序/插件中的功能是否可选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040489/

相关文章:

eclipse - 调试eclipse插件项目——PermGen空间,内存不足错误

java - 尝试在空对象引用上调用虚拟方法 'android.webkit.WebSettings android.webkit.WebView.getSettings()'

java - Java 中的泛型特定接口(interface)定义

java - 增加 Swing 中标题栏的大小

eclipse - 安装luaEclipse错误

java - Eclipse 插件未执行

java - 如何在 Eclipse 插件中获取对当前项目的引用?

java - 构造函数 SimpleAdapter 未定义

eclipse - 如何在 Eclipse RCP 中隐藏首选项页面

java - org.eclipse.e4.core.di.InjectionException : Could not find satisfiable constructor 问题