Eclipse e4 - 缺少约束:要求能力:osgi.extender

4
运行我的eclipse e4应用程序时,出现验证问题的提示。Missing Constraint可以通过进入运行配置并选择Add Required Plug-ins来解决,但这更像是一种变通而非解决方案。我尝试过更改版本和添加/删除插件,但无法解决这些错误。类似问题在这里提到here。导致这种情况的原因是什么?

为什么“添加所需插件”只是一种解决方法?在事情正常工作之前,您需要拥有正确的插件。所需插件集在Eclipse版本之间有所不同,在这种情况下,添加org.apache.felix.scr导致了问题。 - greg-449
应用程序应该设置好,这样开发人员就不需要做任何其他事情来使其工作。我尝试在产品文件中使用“添加所需插件”,但那并没有添加所有插件。在运行配置中,它会添加所有必需的内容。此外,当我们构建应用程序时,它将使用清单等信息而不是“运行配置”,这也可能会成为问题? - Michael
你正在使用哪个版本的Eclipse?你的目标平台是哪个版本的Eclipse? - greg-449
不是直接的解决方案,但我发现在产品文件和运行配置中使用“特性”为基础的配置要容易得多。特性内容确定插件并且应始终正确。 - greg-449
你知道当前错误的原因吗? - Michael
显示剩余3条评论
2个回答

9
如果您在MANIFEST.MF中的必填插件中添加org.eclipse.equinox.ds,则此对话框将不会在启动时显示。

org.eclipse.equinox.ds 没有可用的条目。虽然 org.eclipse.equinox.* 有多个条目,但没有 ds - Michael
哇,他们把它拿走了。肯尼斯·埃文斯在这个帖子中写道:“在4.10更新站点下的Equinox目标组件中”,网址是https://bugs.eclipse.org/bugs/show_bug.cgi?id=539655 - Adam Horvath
这差不多就是了!我安装了 Equinox Target Components,然后在清单中添加了 org.eclipse.equinox.ds。在添加所需的插件后,它会添加 org.apache.felix.scr 插件,因为它是一个依赖项,从而解决了问题。总的来说,可以通过仅添加 org.apache.felix.scr 来避免这个问题,但是我最终遇到了缺少约束的问题,正如我在与 Greg 的评论中提到的那样。我得到了 osgi.service 的缺少约束。这是针对 org.eclipse.e4.ui.servicesorg.eclipse.e4.ui.workbench 的。你知道可能是什么原因吗? - Michael
1
org.eclipse.equinox.ds is no longer used in the latest versions of Eclipse. It has been replaced with org.apache.felix.scr - greg-449
那很有道理。你对我接下来遇到的错误有什么想法吗?如果更容易的话,我可以创建一个单独的问题。我无法解决这些错误,因为我不确定该去哪里查找,所以如果你有任何文档应该检查,那就太好了。 - Michael

6

通过比较我在点击“添加必需插件”之前和之后的运行配置,我成功找到了缺失的插件。

在产品文件中点击“添加所需插件”没有添加的5个插件丢失了。

org.apache.felix.scr
org.eclipse.equinox.event
org.eclipse.compare.core
org.eclipse.fx.osgi
org.eclipse.team.core

在将这些插件添加到产品文件和清单中后,缺失约束问题得到解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接