【问题标题】:Eclipse bundle dependency resolvingEclipse 捆绑依赖解析
【发布时间】:2014-01-28 17:00:12
【问题描述】:

我目前正在尝试编译我的 Eclipse PDE 项目。去做这个 我必须从 Require-Bundle 中收集所有依赖项 在项目及其依赖项中找到的说明。我现在有 遇到一个问题,如果我想编译我的一个项目失败 因为它引用了类org.eclipse.swt.graphics.Point org.eclipse.swt.win32.win32.x86 捆绑。问题似乎是 对org.eclipse.swt.win32.win32.x86 的依赖不能 得到解决。

使用eclipse的依赖视图我可以看到org.eclipse.ui 取决于org.eclipse.swtorg.eclipse.swt 取决于org.eclipse.swt.win32.win32.x86

这是我的问题:

我不明白 eclipse 是怎么知道的 org.eclipse.swt 取决于 org.eclipse.swt.win32.win32.x86。这 org.eclipse.swt 的清单文件没有 Require-Bundle (或与捆绑包相关的其他信息 org.eclipse.swt.win32.win32.x86) 声明。那它是怎么知道的??

感谢您的帮助,

提姆

【问题讨论】:

    标签: dependencies osgi bundle manifest pde


    【解决方案1】:

    这是一种反向依赖,因为org.eclipse.swt.win32.win32.x86 是一个片段包,由基础org.eclipse.swt 包托管并扩展了它的API。 SWT 基础包很不寻常,因为它根本不包含任何代码……一切都在特定于平台的片段中。

    这在 PDE 中有效,因为基本包包含标题“Eclipse-ExtensibleAPI: true”。当 PDE 看到此标头时,它会搜索可以将 API 添加到基本包的片段。遗憾的是,如果您正在编写某种构建过程来自动化 PDE 构建,您将需要复制相同的逻辑。

    幸运的是,在构建时您无需担心要为哪个平台编译:所有类和方法的签名在支持的平台上都是相同的,因此您可以使用 Win32 片段轻松编译,即使您正在 Mac 上编译(例如)。

    【讨论】:

    • 好的。这对我有帮助。谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2015-12-14
    相关资源
    最近更新 更多