插件 - 功能 - 更新站点

时间:2011-08-09 11:27:55

标签: eclipse plugins update-site

我有几个插件,并希望创建一个很好的更新站点来提供它们。其中一些只包含核心功能(不会做任何事情,让我们称之为核心插件),而其他人则为最终用户提供一些功能(它们依赖于核心插件,我们称之为useme-plugin)。 现在,我已经为每个useme-plugin创建了功能。我包含了相应的插件并设置了所有依赖项(core-plugins)。 这些功能,我已添加到更新站点。 当我现在尝试安装它们时,我抱怨核心插件丢失了:

    Cannot complete the install because one or more required items could not be found.
  Software being installed: Useme-plugin 1.1.0.201108090928 (de.xxx.feature.feature.group 1.1.0.201108090928)
  Missing requirement: Useme-plugin 1.1.0.201108090928 (de.xxx.feature.feature.group 1.1.0.201108090928) requires 'de.xxx.coreplugin 1.1.0' but it could not be found

我做错了什么吗?我不想将核心插件包含在每个useme-feature中......或者我必须这样做吗?任何人都可以帮我正确地构建它吗?

1 个答案:

答案 0 :(得分:3)

功能适用于组相关插件,这些插件应作为单个单元安装在目标系统上。因此,您通常会为非平凡的应用程序提供许多功能:

  • 具有应用程序基本功能的主要功能
  • 可选加载项功能的许多功能
  • 许多具有核心功能的功能
  • 主要的第三方插件集合的许多功能

两个或多个功能可以包含相同的插件 - 插件仍然只存在于目标系统的一个实例中。在特殊情况下,目标系统上甚至可以存在同一插件的几个不同版本。在其他情况下,不同的功能取决于同一插件的不同版本,您必须由开发人员解决冲突。

功能还可以包含或依赖其他功能,在这种情况下,必须在目标系统上安装所依赖的功能。因此,主要应用程序功能取决于所需的核心和第三方功能,同样适用于第三方功能。依赖功能的安装通常会自动发生在p2上。 p2非常智能,只能在安装或更新时下载所需的插件......

在运行时,特定插件如何在目标系统上结束并不重要,这为您提供了许多选项。

将插件划分为功能时,您必须主要考虑目标系统上所需的应用程序和所需的加载项。当你有多个应用程序或加载项时,每个都使用核心插件或第三个插件的子集,这只会变得非常困难。

你还没有写过你是否有一个应用程序或许多应用程序,所以我假设你有一个应用程序 - 将这个想法扩展到共享一组通用插件的多个应用程序相当容易。 / p>

您可以通过多种不同方式解决此问题。绝对最简单的解决方案是制作单个应用程序功能,并在其中包含UI,核心和第三方插件 - 或多或少按照您的建议。如果你只有一个产品并且不希望在其他设置中使用核心插件,这样可以正常工作。

通常,您将功能划分为具有核心和UI功能。大多数情况下,因为UI功能被划分为不同的功能,以允许最终用户只安装所需的功能。

因此,在您的情况下,您还可以拥有两个功能:核心功能和应用程序功能,然后依赖于核心功能。

或者你可以

  • 核心功能
  • UI功能 - 取决于核心功能
  • 一个RCP功能(来自Eclipse)
  • 和主要的应用程序功能,取决于所有其他功能

有很多方法可以做到这一点......