Eclipse OSGi 包需要另一个包的片段
Posted
技术标签:
【中文标题】Eclipse OSGi 包需要另一个包的片段【英文标题】:Eclipse OSGi bundle reqiure another bundle's fragment 【发布时间】:2011-10-31 18:25:38 【问题描述】:这可能是一个简单的问题,但让我困惑了一段时间。
我正在开发一个依赖于 google guice 的 OSGi 包。 Google guice 有一个主包和几个片段,如辅助注入片段。 在我的包中,我使用了辅助注入片段和从该片段导出的类。
但是在 Eclipse 中,我只能设置对另一个 bundel(在本例中为 guice 包)的包依赖,但不能直接在片段(辅助注入)上设置包依赖,因此 Eclipse 抱怨找不到从片段导出的类。
我怎样才能依赖包的片段?
【问题讨论】:
【参考方案1】:对片段的导出包使用Import-Package
依赖项。
事实上,您应该对所有依赖项使用Import-Package
,并尽可能避免使用Require-Bundle
。
【讨论】:
不幸的是,有很多情况是无法避免的。例如。如果你正在做使用扩展点的 Eclipse 插件,那么你仍然需要Require-Bundle
。
嗨,托尼。在使用 Eclipse 扩展点时,您确实不需要需要 Require-Bundle 依赖项。实际上你不需要任何依赖,除非你需要实现一个 API 或接口。不幸的是,PDE 工具建议您添加一个 Require-Bundle,但这不是必需的。
我的立场是正确的。即使没有声明它也可以工作......谢谢。
但问题是当我尝试使用 PDE 的编辑器在 MAINFEST.MF 文件中添加导入的包时,来自 fagemnt 的包没有显示在列表中!
Wudong - 您可能还需要将Eclipse-ExtensibleAPI: true
添加到片段主机(即Guice 本身)。请注意,这是 PDE 使用的纯工具头文件,而不是 Eclipse 或 OSGi 运行时头文件。见help.eclipse.org/indigo/…【参考方案2】:
除了将所需的包添加到 Import-Package
之外,您可能还需要将 Eclipse-ExtensibleAPI: true
添加到清单中以防止 PDE 中出现未解决的依赖错误。
【讨论】:
以上是关于Eclipse OSGi 包需要另一个包的片段的主要内容,如果未能解决你的问题,请参考以下文章