2010-11-11 37 views
5

Làm thế nào một gói Eclipse (ví dụ: bên trong mã kích hoạt) tìm các cá thể bó phụ thuộc vào thời gian chạy? Tôi muốn tìm các gói mà Eclipse đã chọn để đáp ứng các yêu cầu phụ thuộc, tôi không muốn tự mình diễn giải bản thân.Tìm các gói phụ thuộc trong Eclipse tại thời gian chạy

Ví dụ: Tôi muốn tìm tất cả các tài nguyên có tên "marker.txt" trong tất cả các gói mà gói hiện tại của tôi phụ thuộc vào. Ngoài ra phụ thuộc transitive. Để thực hiện điều này, tôi cần phải có thể tìm thấy tất cả các gói này để bắt đầu.

Trả lời

4

Không có cách nào dễ dàng để xác định sự phụ thuộc. Cách tốt nhất là đi qua giao diện PackageAdmin. Xem thông số OSGi cho PackageAdmin và getImportingBundles cụ thể: http://www.osgi.org/javadoc/r4v42/org/osgi/service/packageadmin/ExportedPackage.html#getImportingBundles()

Bạn cần xác định tất cả các gói đã cài đặt, gói nào xuất một hoặc nhiều gói mà gói của bạn đang nhập. Cách dễ nhất để đạt được điều này là gọi PackageAdmin.getExportedPackages (Gói bó) với bó = null. Điều này trả về một mảng của tất cả các gói đã xuất. Sau đó, bạn cần phải lặp lại mảng này và gọi ExportPackage.getImportingBundles().

0

Bạn có thể mở một OSGi console và ban hành các lệnh sau:

ss 

Đối với danh sách các gói, bao gồm id số

bundle <id> 

để có thêm thông tin, bao gồm cả phụ thuộc.

Bạn cũng nên cố gắng

help 

để có thêm lệnh

+1

Anh ấy muốn thực hiện điều này theo lập trình. –

1

hãy xem câu trả lời của tôi để this question. 4.3 sẽ có một API bó dây mới sẽ cho phép những thứ như thế này.

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