我正在开发一个 Eclipse RCP 应用程序。该应用程序应在 Windows 和 Linux 上运行。
此应用程序中有多个包含 native 工件的插件。要在二进制构建 (jar) 中包含这些工件,应在 build.properties 文件中指定它们。
目前,我在 build.properties 中包含了 Linux 和 Windows native 工件,然后在运行时我选择加载哪一个。但是,我不喜欢这种方法,因为它会导致 Linux 和 Windows 版本中出现不必要的文件。
有没有办法在build.properties中指定目标平台?那么对于 Linux 构建,它将包含 Linux 工件,而对于 Windows 构建,它将包含 Windows 工件?
或者,有没有办法维护 build.properties 的两个副本 - 一个用于 Linux 构建,第二个用于 Windows 构建?
最佳答案
通常的方法是为每个平台提供单独的插件(或插件片段),并使用平台过滤器来限制插件何时可用:
例如,在 MANIFEST.MF 中
Eclipse-PlatformFilter: (& (osgi.ws=cocoa) (osgi.os=macosx) (osgi.arch=x86_64) )
将插件限制为仅适用于 Mac OS X 64 位、Cocoa。
这就是 SWT 的作用。有底座org.eclipse.swt
不包含任何代码的插件,然后是扩展该插件的多个插件片段(例如 org.eclipse.swt.cocoa.macosx.x86_64
)。每个片段都包含一个平台的 SWT 代码,所有代码都实现相同的类。
Eclipse 仅加载当前平台的插件,因此您无需选择要使用的插件。
关于多个平台的 Eclipse RCP : build. 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989328/