Import-Package
nên tốt hơn bởi vì, như đã nói ở trên, bạn có thể di chuyển một gói từ một bó khác mà không thay đổi MANIFEST.MF khách hàng hiện có của
Nhưng ...
Có một lý do thực tế để sử dụng Require-Bundle
nếu bạn đang sử dụng Eclipse để phát triển các gói của mình:
Eclipse không sử dụng các gói làm đơn vị độ phân giải. Nó sử dụng bó. Tức là, nếu bạn sử dụng một gói của một gói, Eclipse biên dịch gói của bạn mà không báo cáo bất kỳ vấn đề nào với việc sử dụng phần còn lại của các gói không được nhập từ gói đó.
Bạn có thể (bạn là con người) nghĩ rằng mọi thứ đều ổn và tải lên gói của bạn để triển khai nhưng ... gói của bạn sẽ bị gián đoạn khi chạy.
Tôi chắc chắn về điều đó vì sự cố này đã xảy ra (với tôi!) Hôm nay.
Giải pháp tốt là thay đổi container classpath của Eclipse nhưng ... nếu điều này sẽ không được thực hiện ... bạn có thể quyết định tránh loại vấn đề này đòi hỏi bó, thay vì gói, trả giá đã đề cập (không có chuyển động mã tương thích ngược giữa các bó).
Nguồn
2016-10-26 15:18:38
Từ http://eclipsesource.com/blogs/2009/07/14/why-i-cant-recommend-using-import-package/: “Nhìn, Yêu cầu-Bundle là thứ đã được sử dụng trong Eclipse cho một thời gian, chủ yếu là vì lý do di sản. Chúng tôi khuyên bạn không nên sử dụng nó nữa. Import-Package tốt hơn nếu bạn muốn ghép nối lỏng hơn giữa các bó. Tuy nhiên, hãy lưu ý đến các gói phân chia đau có thể gây ra. ” –