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

时间:2018-05-02 15:27:28

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

我正在开发Eclipse e4 RCP应用程序并希望使用Jersey REST客户端来调用RESTful Web服务,但是当我将依赖项添加到插件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代码,所以我知道当我将依赖项添加到清单文件时会触发问题。

我是否在设置依赖项时错过了阻止应用程序启动的内容,或者是否有更好的方法为插件添加依赖项?

1 个答案:

答案 0 :(得分:1)

插件的MANIFEST.MF通常只需列出其直接依赖的其他插件。

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