如何将依赖项添加到 Eclipse e4 RCP 应用程序?

How to add dependencies to an Eclipse e4 RCP application?

我正在开发 Eclipse e4 RCP 应用程序并想使用 Jersey REST 客户端调用 RESTful 网络服务,但是当我将依赖项添加到插件 MANIFEST.MF 文件时应用程序失败才能正确启动。

我要添加的依赖项是javax.ws.rsorg.glassfish.jersey.core.jersey-clientorg.glassfish.jersey.media.jersey-media-json-jackson。所有这三个都已添加到从 Eclipse Orbit 下载的目标定义文件(因此它们已经包含必要的 OSGI 信息)和插件 MANIFEST.MF 文件。

该项目由两个插件模块组成,一个指定两个插件的功能模块,一个指定功能的产品模块,以及一个目标定义模块。第一个插件是 com.xxx.application 并且是主要应用程序。第二个插件是 com.xxx.demo 并为主应用程序提供了一部分。这是我尝试添加依赖项的第二个插件。

当我尝试通过产品文件启动应用程序时,返回以下错误消息...

!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-05-02 14:52:36.033
!MESSAGE Unable to retrieve the bundle from the URI: bundleclass://com.xxx.demo/com.xxx.demo.DemoPart

问题似乎发生在将三个依赖项中的任何一个添加到 com.xxx.demo 插件的 MANIFEST.MF 文件时,如果我从 MANIFEST.MF 文件中删除依赖项,它会正确启动.我没有在调用 Web 服务的插件中包含任何 JAX-RS 代码,所以我知道当我将依赖项添加到清单文件时会触发问题。

我在设置依赖项时是否遗漏了什么导致应用程序无法启动,或者是否有更好的方法向插件添加依赖项?

插件的MANIFEST.MF一般只需要列出它直接依赖的其他插件即可。

使用基于功能的 .product 文件时,产品中的 feature.xml 文件必须列出 RCP 中所需的每个插件。如果未列出某些内容,则不会包含在内。