Eclipse插件开发:如何获取当前Bundle版本?

13

在Eclipse插件开发中,如何获取当前捆绑包版本?

只需要在Manifest.MF文件中查看即可。

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Nodeclipse
Bundle-SymbolicName: org.nodeclipse.ui;singleton:=true
Bundle-Version: 0.6.0.qualifier
Bundle-Activator: org.nodeclipse.ui.Activator
Require-Bundle: org.eclipse.ui,

然而Java只有一种方法可以查看Bundle实现版本:getClass().getPackage().getImplementationVersion();

2个回答

25

更符合OSGi的方式,无需知道你的名称,并且是官方标准的方式:

 Version version = FrameworkUtil.getBundle(getClass()).getVersion();

请注意,您获取的捆绑包版本是从加载此文件的捆绑包中获取的。因此,请勿将此文件放在另一个捆绑包中的便利库中!


15

在插件中,您可以使用:

Bundle bundle = Platform.getBundle("org.nodeeclipse.ui");
Version version = bundle.getVersion();

VersiongetMajorgetMinorgetMicrogetQualifier方法。

Platformorg.eclipse.core.runtime.Platform


我认为这太脆弱了。如果捆绑包名称更改,此代码将不再起作用。 - khatchad
3
如果你想要获取当前正在运行的bundle,那么使用FrameworkUtil.getBundle方法。然而,当你在处理扩展点定义时,你所拥有的只有插件id,因此在这种情况下,请使用这个方法。 - greg-449

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接