2013-10-09 19 views
9

Trong phát triển plugin Eclipse: Cách tải phiên bản gói hiện tại?Eclipse-plugin-dev: Cách tải phiên bản gói hiện tại?

Nó chỉ là trong 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, 

Tuy nhiên Java có phương pháp duy nhất để nhìn vào Bundle phiên bản thực hiện getClass().getPackage().getImplementationVersion();

Trả lời

9

Trong một plug-in, bạn có thể sử dụng:

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

VersiongetMajor, getMinor, getMicro, getQualifier phương pháp.

Platformorg.eclipse.core.runtime.Platform

+0

Tôi nghĩ điều này quá dễ vỡ. Nếu tên gói thay đổi, mã này sẽ không hoạt động nữa. –

+2

@RaffiKhatchadourian Nếu bạn muốn gói bạn hiện đang chạy, hãy sử dụng FrameworkUtil.getBundle. Tuy nhiên khi bạn đang làm những việc như xử lý các định nghĩa điểm mở rộng, tất cả những gì bạn có là id của plugin nên trong trường hợp đó, hãy sử dụng phương thức này. –

18

Trong một OSGi cách hơn, không cần phải biết tên của bạn, và chính thức cách tiêu chuẩn:

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

Chú ý rằng phiên bản gói bạn nhận được là từ bó từ đó điều này đã được tải. Vì vậy, không đặt điều này trong một thư viện tiện lợi trong một gói khác!

Các vấn đề liên quan