【问题标题】:How to obtain the version of a custom feature at runtime?如何在运行时获取自定义功能的版本?
【发布时间】:2012-04-24 12:26:05
【问题描述】:

有一个类似的问题on SE,但答案仅适用于检测可用插件的版本。

不过,我正在寻找一种在运行时检索用户定义功能的版本号的方法。

假设我定义了一个功能com.me.prog.prod.feature,它定义了插件依赖项,后来在产品定义com.me.prog.prod.product 中使用。启动com.me.prog.prod.product 时,我希望能够检索com.me.prog.prod.feature 的版本信息,因为我想将其用于顶级程序版本控制。

有没有办法使用 Eclipse RCP 框架代码来做到这一点?

【问题讨论】:

    标签: java eclipse-plugin version eclipse-rcp


    【解决方案1】:

    以下内容应为您提供功能版本号:

    String version = null;
    IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
    for (IBundleGroupProvider provider : providers) {
        IBundleGroup[] groups = provider.getBundleGroups();
        for (IBundleGroup group : groups) {
            if ("com.me.prog.prod.feature".equals(group.getIdentifier())) {
                version = group.getVersion();
            }
        }
    }
    

    您必须在其中提供特定的功能名称,因为插件可能属于多个功能。

    【讨论】:

    • 很遗憾,这并不能解决问题。虽然您的代码整齐地列出了平台提供的许多功能(eclipse.rcp、emf、eclipse.help),但不存在任何用户定义的功能。
    • 我有测试项目设置了自定义产品和功能。如果我从产品编辑器中导出产品,上面的代码会显示自定义功能(尽管通过 Eclipse 启动器运行时不会显示)。似乎还有许多其他配置设置可能导致该功能未列出,例如未在 feature.xml 中输入品牌插件。
    猜你喜欢
    • 2010-10-23
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多