【问题标题】:Are features optional or not in an Eclipse e4 application/plugin?Eclipse e4 应用程序/插件中的功能是否可选?
【发布时间】:2012-08-20 15:22:40
【问题描述】:

我正在尝试了解 RCP 的 eclipse e4 的概念。
阅读完教程后,我陷入了以下困境:
假设我创建了一个 Plugin 项目(没有未选中富客户端,未选中 Actvator,因此 /src 下没有类等)
插件是 Eclipse 中最小的可部署和可安装的软件组件。好的。
现在我可以创建一个基于Plugins FeaturesProduct Configuration
所以Product Configuration 提供插件等,如果我理解正确,Feature 是可选的。假设我是正确的(不知道,是吗?)我将依赖项添加到产品配置中:
org.eclipse.emf.commonorg.eclipse.emf.ecore 并按 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 并将其“附加”为对产品配置的依赖! IE。没有运行时异常并且窗口出现。

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

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

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

【问题讨论】:

    标签: java eclipse eclipse-plugin swt eclipse-rcp


    【解决方案1】:

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

    【讨论】:

    • 所以问题确实是org.eclipse.e4.rcp 丢失的事实?好的,我会试试你说的,但为什么它只有在product 是基于Features 时才有效。根据help.eclipse.org/galileo/index.jsp?topic=/… Feature 是可选的
    • 你是对的。product->Dependencies Tab 中缺少 4-5 个作为您在答案中发布的列表的一部分。对不起,我是 eclipse 开发的新手。这是什么意思? Feature 是可选的,但我必须手动添加所有这些才能工作?所以推荐的方法是始终使用Feature?从不基于插件?
    • 我的意思是在添加额外的组件后,窗口打开时没有错误
    • 产品定义只能使用插件工作,但 eclipse SDK 本身使用功能,所以它是面向的。
    • 我使用的是eclipse SDK,所以我must也使用了我猜你说的功能。
    猜你喜欢
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 2015-11-06
    • 2013-07-10
    • 1970-01-01
    • 2019-05-02
    相关资源
    最近更新 更多