多个平台的 Eclipse RCP : build. 属性

标签 eclipse eclipse-plugin eclipse-rcp rcp multiplatform

我正在开发一个 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/

相关文章:

java - 如何查看我的 Eclipse 版本?

android - App Engine Connected Android 向导在出现 RuntimeException 时停止

android - Eclipse 说需要更新的 ADT 版本,但找不到更新

java - 在 Eclipse RCP 应用程序中捕获终止信号

java - Eclipse Kepler 无法启动 Tomcat 7

java - Eclipse Java JTable 与表

java - 如何占用Eclipse UI中的可用空间?

java - eclipse 如何知道有哪些 OSGi 包可以依赖?

java - Eclipse 调试 View 当前行

java - 通过 ProblemsView 中的plugin.xml 添加双击操作