我正在开发一个Eclipse RCP应用程序与Eclipse 4.4 Luna M5,我正在使用Guice 3.0。因此,我将guice.jar添加到目标平台,并且对于我正在开发的每个插件,我都可以使用Eclipse的插件清单编辑器将bundle com.google.inject添加到插件的依赖项中。到目前为止,一切正常。
现在的问题是:我想使用引导辅助注射(@Assisted
)。
所以我将guice- assistdinject .jar添加到我的目标平台。(我使用的是. Target文件= Eclipse目标定义文件)。
在.target文件编辑器的"Content"选项卡中,Eclipse正确地显示了来自guice-assistedinject.jar的片段束com.google.inject.assistinject
3.0,但是我不能将这个束或这个束的导出包添加到我正在开发的插件项目的依赖项中。
当我在插件清单编辑器中按"添加"时,com.google.inject.assistedinject
不在可添加依赖项列表中?怎么了?
我的评论再次作为回答:
OK,找到了解决方案:这是一个PDE问题,请参阅Eclipse中公认的答案OSGi bundle require另一个bundle's fragment
像上面的链接中描述的那样,在目标平台中更改了我的向导-3.0.jar的清单之后,我需要做以下工作:
- 重新加载目标平台(Windows ->首选项->插件开发->目标平台)并重新启动eclipse。
- 将com.google.inject bundle从我的插件中移除。
- 将所有需要的com.google.inject包添加到插件的"导入包"中。现在在包列表中我可以看到com.google.inject. assistdinject .assisted并导入它!