2012-04-24 74 views
0

還有一個類似的問題on SE,但答案只適用於檢測可用插件的版本。如何在運行時獲取自定義功能的版本?

但是我想找一種方法來在運行時檢索用戶定義的功能的版本號。

比方說,我定義了一個功能com.me.prog.prod.feature,它定義了插件依賴關係,稍後在產品定義com.me.prog.prod.product中使用。在啓動com.me.prog.prod.product時,我希望能夠檢索com.me.prog.prod.feature的版本信息,因爲我想將它用於頂級程序版本控制。

有沒有辦法使用Eclipse RCP框架代碼來做到這一點?

回答

2

下面應該讓你的特性的版本號:

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(); 
     } 
    } 
} 

您將在那裏給特定的功能名稱作爲一個插件可能屬於一個以上的功能。

+0

不幸的是,這並沒有解決問題。儘管您的代碼整齊地列出了平臺提供的許多功能(eclipse.rcp,emf,eclipse.help),但任何用戶定義的功能都不存在。 – 2012-04-24 12:58:11

+0

我有用自定義產品和功能設置的測試項目。如果我從產品編輯器中導出產品,上面的代碼顯示了自定義功能(儘管在通過Eclipse啓動器運行時不會)。似乎還有一些其他配置設置可能導致該功能未被列出,例如未在feature.xml中輸入品牌插件。 – 2012-04-24 15:44:07

相關問題