我们如何创建特定于操作系统的插件

时间:2016-08-26 12:43:43

标签: eclipse plugins eclipse-plugin

我需要设计一个特定于操作系统的插件。根据操作系统(MAC或Windows),插件的内容会有所不同。

目前我们正在维护两个不同的插件,一个用于Windows,另一个用于MAC,插件ID为com.core.win和com.core.mac。

我的主要插件依赖于上面的插件。但由于我的插件ID因操作系统而异,因此这两个插件都在插件依赖项中添加为“可选”。

com.core.win; resolution:=optional,
com.core.mac; resolution:=optional

但实际上,依赖是必须的,“必需的”。如何设计我的插件结构,以便可以定义紧密依赖?有没有标准的解决方案?

谢谢!

1 个答案:

答案 0 :(得分:2)

通常你有一个基础插件,每个平台都有一个特定于平台的片段。

您使用Eclipse-PlatformFilter MANIFEST.MF条目来指定平台,例如:

Eclipse-PlatformFilter: (& (osgi.ws=cocoa) (osgi.os=macosx) (osgi.arch=x86_64) )

指定Cocoa窗口系统,Mac OS X操作系统和64位(这是当前Mac的正常设置)。

在plugin.xml / MANIFEST.MF编辑器中,这是“概览”标签的“常规信息”部分中的“平台过滤器”字段。

Here是关于片段的很好的介绍,Eclipse PDE Help也有文档。此外,SWT是使用特定于平台的代码的片段的一个很好的例子。请参阅this FAQ entry以了解如何获取SWT代码以进行检查(您无需实际执行构建和导出部分)。