Eclipse 关于';单例:=true';在清单文件中

Eclipse 关于';单例:=true';在清单文件中,eclipse,singleton,manifest,Eclipse,Singleton,Manifest,我有一个插件,目前没有任何扩展点(也没有扩展任何其他插件)。为了解决某个问题,我必须为这个插件创建一个扩展点,并在其他地方创建一个适当的扩展 执行此操作时,eclipse强制我在清单文件中设置singleton:=true。我知道必须设置此参数的原因,但我想知道引入此参数是否会对产品中插件的功能产生任何影响 谢谢。“singleton:=true”意味着捆绑包在OSGi运行时中只能有一个版本 由于您在包中提供了扩展点,Eclipse会自动添加该标志。如果有两个版本的bundle提供相同的扩展点(

我有一个插件,目前没有任何扩展点(也没有扩展任何其他插件)。为了解决某个问题,我必须为这个插件创建一个扩展点,并在其他地方创建一个适当的扩展


执行此操作时,eclipse强制我在清单文件中设置
singleton:=true
。我知道必须设置此参数的原因,但我想知道引入此参数是否会对产品中插件的功能产生任何影响

谢谢。

“singleton:=true”意味着捆绑包在OSGi运行时中只能有一个版本


由于您在包中提供了扩展点,Eclipse会自动添加该标志。如果有两个版本的bundle提供相同的扩展点(具有相同的标识,可能有不同的属性或元素),则会把事情搞得一团糟。

摘自Alex Blewitt博士的《Eclipse插件开发》一书:

条款

singleton:=true 
是一个OSGi指令,这意味着Eclipse一次只能安装此插件的一个版本


对于向UI添加依赖项的插件,有一个限制,即它们必须是单例的。(这是安装新插头需要重新启动IDE的主要原因之一。)

感谢您的回复!如果捆绑包中没有设置
singleton:=true
(如果没有扩展点和扩展点),您能告诉我会发生什么吗?该捆绑包允许在OSGi运行时具有多个版本。例如,org.eclipse.junit。它在eclipse中有3.x和4.x,这两个版本提供不同版本的服务。
singleton:=true
是关于实例的。它与版本无关。