Eclipse RCP:多平台的build.properties

时间:2016-03-14 13:49:25

标签: eclipse eclipse-plugin eclipse-rcp rcp multiplatform

我正在开发Eclipse RCP应用程序。该应用程序应该在Windows和Linux上运行。

此应用程序中有多个插件包含本机工件。要在二进制构建(jar)中包含这些工件,应在 build.properties 文件中指定它们。
目前我在 build.properties 中包含Linux和Windows本机工件,然后在运行时我选择要加载哪个工件。但是,我不喜欢这种方法,因为它会导致Linux和Windows版本中出现不必要的文件。

有没有办法在 build.properties 中指定目标平台?因此,对于Linux构建,它将包括Linux工件,而对于Windows构建,它将包括Windows工件? 或者,有没有办法维护 build.properties 的两个副本 - 一个用于Linux构建,另一个用于Windows构建?

1 个答案:

答案 0 :(得分:2)

通常的方法是为每个平台配备单独的插件(或插件片段),并使用平台过滤器限制插件何时可用:

例如,在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只加载当前平台的插件,因此您不必做任何选择使用的工作。