【问题标题】:Eclipse OSGi bundle reqiure another bundle's fragmentEclipse OSGi 包需要另一个包的片段
【发布时间】:2011-10-31 18:25:38
【问题描述】:

这可能是一个简单的问题,但让我困惑了一段时间。

我正在开发一个依赖于 google guice 的 OSGi 包。 Google guice 有一个主包和几个片段,如辅助注入片段。 在我的包中,我使用了辅助注入片段和从该片段导出的类。

但是在 Eclipse 中,我只能设置对另一个 bundel(在本例中为 guice 包)的包依赖,但不能直接在片段(辅助注入)上设置包依赖,因此 Eclipse 抱怨找不到从片段导出的类。

我怎样才能依赖包的片段?

【问题讨论】:

    标签: java eclipse plugins osgi guice


    【解决方案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 中出现未解决的依赖错误。

    【讨论】:

      猜你喜欢
      • 2017-12-14
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 2018-11-03
      • 2016-02-26
      • 2018-03-20
      • 1970-01-01
      • 2021-03-25
      相关资源
      最近更新 更多