在Eclipse RCP中,插件、特性和产品有什么区别?

83

有哪些区别?它们分别用于什么目的?

1个回答

124

正如RCP教程所述:

插件是 Eclipse 中最小的可部署和可安装的软件组件。

每个插件都可以定义扩展点,这些扩展点定义了其他插件提供功能贡献(代码和非代码)的可能性。非代码功能贡献可以提供帮助内容等。

这种架构的基础是 Eclipse 的运行时环境 Equinox,它是 OSGI 的参考实现。有关详细信息,请参见OSGi开发 - 教程
Eclipse 的插件概念与 OSGI 的 bundle 概念相同。一般来说,一个 OSGI bundle 等于一个插件,反之亦然。

first rcp


特性教程提到:

一个特性项目基本上是插件和其他功能的列表,可以理解为逻辑上的独立单元

Eclipse在更新管理器和构建过程中使用特性项目。您还可以为特性提供软件许可证。

new feature


最后,product是使用Eclipse平台构建的独立程序。产品可以选择性地打包并作为一个或多个功能交付,这些功能只是由Eclipse更新机制作为单个实体管理的插件分组。

Product definition file show the overview tab


因此:

插件可以分组成特征,可以打包为一个可执行单元,称为产品。


4
这是一个相对较旧的答案,但无论如何:我理解你的意思,但“功能”项目的“依赖项”选项卡、插件.xml文件的“依赖项”选项卡和“产品”的“依赖项”选项卡之间有什么区别?能否解释一下呢? - Cratylus
2
@user384706 基本上,“产品”页面的“依赖项”选项卡允许您列出功能(插件组)以及所需的插件,以便为您的产品提供支持。(http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Ffeature_editor%2Fdependencies.htm: “依赖性”页面列出了在更新管理器安装此功能之前必须存在于产品中的所有必需功能和插件。如果缺少任何这些先决条件,则不会安装该功能。”)而“Plugin.xml”的“依赖项”选项卡仅列出其他所需的插件。 - VonC
2
谢谢!为什么在同一个插件的 MANIFEST.MFplugin.xmlbuild.properties.xml 中都有依赖定义选项卡?我无法理解这一点,也不能随意更改项目。 - Cratylus
1
@user384706,MANIFEST.MF 将包含在运行时所需插件的“已解决”列表(请参见 help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Fmanifest_editor%2Fdependencies.htm):“您可以随时单击添加依赖项超链接,让 PDE 分析您的代码并通过 Require-BundleImport-Package 标头在您的 MANIFEST.MF 文件中生成正确的依赖关系。”因此,您不应直接修改该部分。plugin.xml 只能包含直接依赖项(与 MANIFEST.ML 中的所有依赖项相对)。 - VonC
@user384706 这与 build.properties 中的依赖项不同,后者仅涉及编译时所需的插件,用于构建插件。 - VonC
感谢您的帮助和时间!现在更清楚了。 - Cratylus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接