Khi tôi đang xây dựng một gói, tôi cần nhúng một vài lọ (http-core và http-client) vào trường hợp của mình. Sử dụng maven với plugin flex Tôi nhận được danh sách nhập khẩu khổng lồ - một số trong những thứ mà tôi không cần. Ngay bây giờ tôi chỉ phủ nhận các gói mà tôi không cần trong số <Import-Package>
, nhưng tôi cũng có thể sử dụng Import-Package: resolution:=optional
. Tôi đã tự hỏi những gì là cách ưa thích và những lợi thế/bất lợi của một trong hai cách tiếp cận là gì?Khi nhúng jar vào gói OSGi, bỏ qua hoặc loại bỏ tùy chọn?
Trả lời
Thật không may mọi người bao gồm rất nhiều "tốt để có các bộ phận" (thường được gọi là utils) mà gây ra các nhập khẩu. Rất thường thủ phạm là riêng biệt của mã lõi mà bạn muốn sử dụng. Nếu bạn sử dụng bndtools thì bạn có thể dễ dàng kiểm tra cách phụ thuộc chạy.
Trong bndtools và maven bạn sử dụng bnd, và bnd làm cho nó rất dễ dàng để chỉ sao chép một phần của JAR vào gói của bạn. Bằng cách đó bạn có thể giảm thiểu sự phụ thuộc. Chỉ cần sử dụng Private-Package để sao chép các gói mà bạn thực sự cần và sau đó nhìn vào hàng nhập khẩu. Nếu bạn nhập một cái gì đó mà bạn nghĩ rằng bạn cần, thêm nó vào Private-Package (trong bndtools bạn có thể làm điều này với kéo và thả).
Cuối cùng, bạn có thể loại bỏ nhiều lần nhập không cần thiết. Tuy nhiên, thường có một số trái. Trong trường hợp đó trang trí chúng với độ phân giải: = tùy chọn trong câu lệnh Import-Package:
Import-Package: com.oracle.whatever; resolution:=optional, *
Đừng quên * ở cuối.
- 1. NSMetadataQuery bỏ qua loại gói tệp tùy chỉnh
- 2. NoClassDefFoundError khi chạy một gói OSGI như jar cổ điển
- 3. Android Proguard bỏ qua jar bên ngoài
- 4. Để nhúng OSGi vào thùng chứa servlet hoặc thùng chứa servlet trong OSGi?
- 5. Cách bỏ qua hoặc bỏ qua trang trí python
- 6. Có tùy chọn bỏ qua trong cam kết không?
- 7. Subversion bỏ qua tùy chọn "--password" và "--username"
- 8. PHP: output_buffering tùy chọn ini bị bỏ qua
- 9. Tùy chọn bỏ qua trường hợp bằng phương thức .contains?
- 10. JList - bỏ chọn khi nhấp vào một mục đã chọn
- 11. Bỏ qua/bỏ qua thư mục/tệp trong TortoiseSVN
- 12. tay loại bỏ Python gói trên Heroku
- 13. Mũi tên dereferencing lồng nhau trong Perl: để bỏ qua hoặc không bỏ qua?
- 14. Tùy chọn khởi động Windows7 để cho phép các trình điều khiển chưa được bỏ qua bị bỏ qua
- 15. Tại sao jar bỏ qua tệp kê khai của tôi?
- 16. Bỏ qua SVN bỏ qua ... có thể?
- 17. PHP cURL dường như bị bỏ qua Cookie jar/nộp
- 18. Sự cố khi bỏ qua các tệp bị bỏ qua trước đó trong Git repo
- 19. Bỏ qua loại chưa biết khi deserializing xml
- 20. OSGi Bundle vs phụ thuộc jar
- 21. Khi nào bỏ qua verify_authenticity_token
- 22. Mac PackageMaker "Destination Select" bước A) bỏ qua B) Tùy chọn vô hiệu hóa vĩnh viễn
- 23. Safari bỏ qua/xóa bỏ thẻ hashatags khi nhấp vào siêu liên kết?
- 24. Hãy bỏ qua chiến lược tùy chỉnh
- 25. Gặp sự cố khi loại bỏ mã dư thừa thông qua kế thừa hoặc generics
- 26. bỏ qua OnItemSelectedListener kích hoạt khi tạo
- 27. MS Web Deploy Bỏ qua Quy tắc không bỏ qua
- 28. Bỏ qua IgnoreAttribute
- 29. Tôi có nên bỏ vào trang lambda của mình hoặc bỏ IEnumerable không?
- 30. Khi nào thì bỏ qua MVVM?
Tại sao không chỉ đơn giản triển khai các lọ cần thiết của bạn dưới dạng bó và thêm các phụ thuộc thích hợp cho riêng bạn thay vì nhúng. – Robin