2013-10-09 6 views
9

In Eclipse-Plugin-Entwicklung: Wie bekomme ich aktuelle Bundle-Version?Eclipse-plugin-dev: Wie bekomme ich die aktuelle Bundle-Version?

Es ist nur in 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, 

Methode Java hat jedoch nur bei Bundle Implementierung Version getClass().getPackage().getImplementationVersion();

Antwort

9

In einem Plug-in Sie verwenden können, suchen:

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

Version hat getMajor, getMinor, getMicro, getQualifier Methoden.

Platform ist org.eclipse.core.runtime.Platform

+0

Ich denke, das ist zu spröde. Wenn sich der Paketname ändert, funktioniert dieser Code nicht mehr. –

+2

@RaffiKhatchadourian Wenn Sie das aktuelle Bundle verwenden möchten, verwenden Sie FrameworkUtil.getBundle. Wenn Sie jedoch Dinge wie die Verarbeitung von Erweiterungspunktdefinitionen tun, haben Sie nur die Plugin-ID. Verwenden Sie diese Methode in diesem Fall. –

18

In einer OSGi Art und Weise, Ihren Namen nicht kennen, und offizielle Standard Art und Weise:

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

Beachten Sie, dass die Bundle-Version aus dem Bündel erhalten ist, aus dem der Das wurde geladen. Also nicht in eine Convenience-Bibliothek in einem anderen Bundle!