2013-03-15 91 views
-1

我应该使用目标平台OSGi创建一个eclipse插件还是不使用它?Eclipse与OSGi框架?

从Eclipse帮助

“如果你不打算使用Eclipse扩展注册表,那么你应该使用OSGi框架的选择。如果选择OSGi框架选项,你不会在依赖关系结束此外,PDE会将可用模板和为您生成的代码限制在OSGi层。“

我选择OSGi时不能做什么?为什么我选择OSGi时,它的插件功能较弱?

回答

3

该设置仅调整即将创建的插件的依赖关系。您可以创建一个简单的捆绑包并向eclipse基础设施包添加依赖关系 - 您是否可以手动管理版本化的依赖关系?

此外,根据此设置,向导将根据所选eclipse版本的模板创建项目脚手架; F.E.帮助,首选项,用户界面贡献以及您已安装的具有适用的注册模板的任何其他内容。从本质上讲,如果你的插件只能在eclipse中使用,你不需要考虑它,只需设置所需的Eclipse版本即可。如果你的插件也可以在其他OSGi框架中使用,那么只有这样才能做出任何必要的决定。

+0

为什么我的插件可以在其他OSGi框架中使用? Eclipse插件必须依赖于Eclipse API,所以如果没有它,它应该是无用的。 – IAdapter 2013-03-15 21:37:23

+1

Eclipse插件开发环境(Eclipse Plugin Development Environment,PDE)也恰好是为Eclipse之外的其他环境开发OSGi bundle的最佳工具之一。整个过程中有很多“插件”术语,但这只是出于历史原因。为其他环境开发的OSGi包显然不会引用Eclipse API。它会引用来自该环境的捆绑包。 – 2013-03-15 22:11:15

+0

ehhh ...最近看了bndtools? – 2013-03-19 20:16:47

1

我们处理几乎所有情况的简单经验法则是,如果它不提供任何UI功能,那么它是一个OSGI包。在这种情况下,没有使用SWT特定的库和框架。

你问“当我选择OSGi的时候我不能做什么?为什么我选择OSGi的时候插件不够强大?”,所以我会问“你正在编写一个插件还是一个OSGi包?”?

他们不是一回事。插件是一个包,其上添加了UI扩展。这不是一个问题(OSGi项目)不那么强大,它只是不提供编写UI所需的额外功能,因为这不是OSGi的一部分。所以,如果你正在编写一个纯粹的OSGi包,那么创建一个OSGi项目,而不需要额外的依赖和工件。如果你正在编写一个UI,那么它应该是一个插件项目。