我目前正在尝试编译我的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.swt
和org.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
)声明。那怎么知道??
谢谢你的帮助,
添
答案 0 :(得分:0)
这是一种反向依赖,因为org.eclipse.swt.win32.win32.x86
是一个由基础org.eclipse.swt
包托管并扩展其API的片段包。 SWT基本包很不寻常,因为它根本不包含任何代码......所有内容都在特定于平台的片段中。
这在PDE中有效,因为基本包包含标题“Eclipse-ExtensibleAPI:true”。当PDE看到此标头时,它会搜索可以将API添加到基本包的片段。遗憾的是,如果您正在编写某种构建过程来自动化PDE构建,则需要复制相同的逻辑。
幸运的是,在构建时您无需担心要编译的平台:所有类和方法的签名在支持的平台上是相同的,因此即使使用Win32片段也可以轻松编译你正在Mac上编译(例如)。