2013-10-09 63 views
9

在Eclipse插件開發中:如何獲取當前包版本?Eclipse-plugin-dev:如何獲取當前包版本?

它只是在的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有方法只看看捆綁的實現版本 getClass().getPackage().getImplementationVersion();

回答

9

在一個插件可以使用:

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

Version has getMajorgetMinorgetMicrogetQualifier方法。

Platformorg.eclipse.core.runtime.Platform

+0

我覺得這太脆弱了。如果軟件包名稱發生更改,則此代碼將不再起作用。 –

+2

@RaffiKhatchadourian如果您想要當前正在運行的包,請使用FrameworkUtil.getBundle。然而,當你正在處理擴展點定義這樣的事情時,你所擁有的只是插件ID,所以在這種情況下使用這種方法。 –

18

在更OSGi的方式,不必知道你的名字,和官方標準的方法:

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

注意,你得到的包的版本是從束從哪個這是加載。所以不要把它放在另一個捆綁的便利庫中!

相關問題