【问题标题】:Eclipse-plugin-dev: How to get current bundle version?Eclipse-plugin-dev:如何获取当前捆绑包版本?
【发布时间】:2013-10-16 05:16:17
【问题描述】:

在 Eclipse 插件开发中:如何获取当前的 bundle 版本?

就在 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();

【问题讨论】:

    标签: java osgi eclipse-plugin manifest.mf


    【解决方案1】:

    以更 OSGi 的方式,不必知道你的名字,以及官方标准方式:

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

    请注意,您获得的捆绑包版本来自加载 this 的捆绑包。所以不要把它放在另一个包的便利库中!

    【讨论】:

      【解决方案2】:

      在插件中你可以使用:

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

      VersiongetMajorgetMinorgetMicrogetQualifier 方法。

      Platformorg.eclipse.core.runtime.Platform

      【讨论】:

      • 我觉得这太脆了。如果捆绑包名称更改,此代码将不再有效。
      • @RaffiKhatchadourian 如果您想要当前正在运行的包,那么可以,使用 FrameworkUtil.getBundle。但是,当您处理扩展点定义之类的事情时,您所拥有的只是插件 ID,因此在这种情况下使用此方法。
      猜你喜欢
      • 2010-09-07
      • 1970-01-01
      • 2017-07-23
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 2019-03-09
      • 1970-01-01
      相关资源
      最近更新 更多