【问题标题】:Is there a difference between "starts" and "activates" for Eclipse RCP plugin?Eclipse RCP 插件的“开始”和“激活”有区别吗?
【发布时间】:2019-04-18 01:48:33
【问题描述】:

创建插件时,在清单文件中有一个选项“在加载其中一个类时激活此插件”:

此外,在配置产品时,还可以选择指定插件起始级别:

“启动”的概念与“激活”的概念相同还是不同。如果它们不同,那又如何呢?

【问题讨论】:

标签: eclipse-rcp


【解决方案1】:

启动级别用于控制 Eclipse 自身启动时插件的启动顺序。这对于确保某些服务在需要时可用是必要的。下图显示了默认的开始级别。在级别 1 org.eclipse.equinox.simpleconfigurator 是加载大多数其他插件的插件 - 所以它需要先启动!

“在加载其中一个类时激活此插件”是一个选项,用于控制何时调用插件 Activator 类(如果有的话)。如果指定了此项,则不会调用激活器,直到需要使用插件中的其他类之一。如果未指定,则仅当插件由启动级别中的“自动启动”或显式 OSGi 启动调用启动时才会调用激活器。

请注意,许多插件根本不需要激活器。

【讨论】:

  • 我注意到一个奇怪的事情是,如果我没有在这个 Start Levels 部分指定任何内容,那么 org.eclipse.core.runtime 和图片中的其他一些插件将自行启动,但如果我手动添加一个插件在这里然后org.eclipse.core.runtime 和其他的不会自动添加,我必须手动添加它们才能启动应用程序
  • 另外,澄清一下:如果auto-start在这里是true,那么不管Activate this plug-in when one of its classes is loaded是否被勾选,那么插件总是启动的,但是如果auto-startfalse或在此处没有条目,那么如果选中Activate this plug-in when one of its classes is loaded,则只启动插件,并加载其中一个类。对吗?
  • 我认为这是对的,但是很难找到关于这方面的好文档。
猜你喜欢
  • 2017-06-25
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
相关资源
最近更新 更多