Eclipse plugin ';包括的功能';和';依赖关系';?

Eclipse plugin ';包括的功能';和';依赖关系';?,eclipse-plugin,osgi,eclipse-rcp,Eclipse Plugin,Osgi,Eclipse Rcp,在定义OSGi/EclipseRCP特性时,我可以定义包含的插件、包含的特性和依赖项 我想知道这些东西之间真正的区别是什么,Eclipse RCP运行时将如何处理这些不同的信息?“包含插件”是此功能的一部分。它们将包含在RCP构建中 “包含的功能”是包含此功能时将包含在RCP生成中的其他功能。大型RCP(如Eclipse)的每个组件都有一个特性,其中包含一个顶级特性,包括组件特性 “依赖项”是您所说的功能所依赖的其他插件和功能。这主要用于导出为“可部署功能”而不是RCP构建的功能。功能安装将在安

在定义OSGi/EclipseRCP特性时,我可以定义包含的插件、包含的特性和依赖项


我想知道这些东西之间真正的区别是什么,Eclipse RCP运行时将如何处理这些不同的信息?

“包含插件”是此功能的一部分。它们将包含在RCP构建中

“包含的功能”是包含此功能时将包含在RCP生成中的其他功能。大型RCP(如Eclipse)的每个组件都有一个特性,其中包含一个顶级特性,包括组件特性


“依赖项”是您所说的功能所依赖的其他插件和功能。这主要用于导出为“可部署功能”而不是RCP构建的功能。功能安装将在安装此功能时检查依赖项是否已安装

除了greg-449的回答:

EclipseECP运行时将如何处理这些不同的信息

除非您正在安装/更新功能,否则运行时不会真正处理功能内容。xml是一个build/install/update“东西”,它描述了包含项和依赖项


换句话说,如果您创建一个独立的产品,您不需要任何feature.xmls,您的产品就可以正常工作。在.product文件中,列出包含的插件(在将产品配置设置为基于“概述”选项卡中的插件之后)

在我的所有功能中,尤其是在所有org.eclipse.*核心功能中,始终定义我的依赖项是否有意义?如果两个功能“包括”相同的其他功能,会发生什么?我想它们不会被添加两次吗?“它会成为[…]”——是的,如果你正在做“可部署特性”,所有依赖项都应该存在。其思想是feature.xml具有所有依赖项,因此在有人安装您的功能后,它可以正常工作,而无需额外工作,安装程序将确保安装所有依赖的功能。也就是说,如果您正在创建一个独立的RCP应用程序,而不是让p2站点安装在第三方eclipse安装中,您可能不必担心依赖关系。如果功能中包含的所有插件及其包含的功能都已经定义了它们的依赖关系,那么为什么我要在功能中定义任何依赖关系?那么,如果我可以(也应该)定义插件中的所有依赖项,为什么我需要功能依赖项呢?你可以将插件和功能放在功能包含项中。您将已经期望安装的插件和特性(例如核心Eclipse)放入特性依赖项中。RCP生成器不会查看插件清单中的依赖项。