Java 如何在运行时获取自定义功能的版本?
还有一个类似的问题,但答案只适用于检测可用插件的版本 然而,我在寻找一种方法,在运行时检索用户定义特性的版本号 比如说,我定义了一个功能Java 如何在运行时获取自定义功能的版本?,java,eclipse-plugin,version,eclipse-rcp,Java,Eclipse Plugin,Version,Eclipse Rcp,还有一个类似的问题,但答案只适用于检测可用插件的版本 然而,我在寻找一种方法,在运行时检索用户定义特性的版本号 比如说,我定义了一个功能com.me.prog.prod.feature,它定义了插件依赖项,后来在产品定义com.me.prog.prod.product中使用。启动com.me.prog.prod.product时,我希望能够检索com.me.prog.prod.feature的版本信息,因为我希望将其用于顶级程序版本控制 有没有办法使用Eclipse RCP框架代码做到这一点?以
com.me.prog.prod.feature
,它定义了插件依赖项,后来在产品定义com.me.prog.prod.product
中使用。启动com.me.prog.prod.product
时,我希望能够检索com.me.prog.prod.feature
的版本信息,因为我希望将其用于顶级程序版本控制
有没有办法使用Eclipse RCP框架代码做到这一点?以下内容将为您提供功能部件版本号:
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中输入品牌插件。