2011-12-05 24 views
8

Tôi đang tạo một plug-in nhật thực và tôi đang gặp sự cố với các jars bên ngoài. Trong trình cắm thêm của tôi, tôi bắt đầu một ứng dụng đòi hỏi một số lọ bên ngoài. Tôi phải làm gì để xuất chúng tự động với phần còn lại của trình cắm?Các lọ bên ngoài trong plug-in nhật thực

Cảm ơn trước :)

Trả lời

13
  1. Mở của bạn plugin.xml
  2. Đến Runtime tab và thêm JAR của bạn trong phần classpath
+2

biết thêm chi tiết xin vui lòng – eactor

+2

** Quan trọng: ** Chỉ thêm thư mục chứa là không đủ. Ngoài ra, việc thêm phụ thuộc vào thiết lập dự án của plugin (thay vì MANIFEST/plugin.xml) không làm gì ngoài các lỗi "ẩn" tại thời gian biên dịch. –

+0

điều này sẽ chỉ thêm các lọ từ dự án hiện tại. Nó không thể thêm các lọ bên ngoài (nằm đâu đó trên đĩa), nhưng nó không phải là di động, nhưng khi bạn cần nó, bạn cần nó. – ACV

8

Đây là cách dễ dàng, mặc dù nó tạo thêm trình cắm thêm.

Trong Eclipse:

  • Chọn New>Other, sau đó Plug-in Development>Plug-in from existing JAR archives.
  • Chọn các lọ bạn muốn bao gồm.
  • Trên trang tiếp theo, định cấu hình trình cắm.
  • Trong tệp kê khai của trình cắm của bạn, thêm trình cắm mới làm phụ thuộc.
  • Trong thuộc tính của trình cắm của bạn, thêm dự án mới dưới Java Build Path trên tab Projects.

Edit: Bạn có thể kết hợp các lọ vào plug-in của bạn bằng cách thay vì kết hợp cả gợi ý của Zsolt và user714965 dưới đây.

+2

Nếu kết hợp nhiều lọ, bạn cũng cần đảm bảo giấy phép của mình cho phép. –

10

Bằng cách làm theo các bước dưới đây, các lọ bên ngoài sẽ được bao gồm khi bạn xuất plug-in của bạn:

  1. Sao chép các tập tin JAR bên ngoài cần thiết vào một thư mục trong dự án plug-in của bạn; Tôi thích gọi thư mục này là lib, nhưng mọi thứ đều phù hợp với bạn.
  2. Mở build.properties trong dự án trình cắm của bạn và kiểm tra các JAR mà bạn muốn bao gồm trong phần xây dựng trong phần Binary Build ở bên trái.
+1

Mặc dù kết hợp các lọ trong cùng một gói là có thể, nó không phải là cách 'thích hợp' để thực hiện nó trong môi trường OSGi - http://stackoverflow.com/questions/3013583/what-is-the-standard-way- tới-bundle-osgi-dependent-libraries/3015072 # 3015072 – Robin

+1

@Robin Tuyệt đối, những gì tôi mô tả ở trên là giải pháp nhanh chóng và dơ bẩn cho vấn đề trong tầm tay. –

4

Đây là những gì đã từng làm việc cho tôi. Nếu họ thực sự là bên ngoài, và đây là một dự án cho công ty của bạn sẽ không ở trong "hoang dã" và bạn kiểm soát môi trường, và bạn có chúng trên hệ thống tập tin nói tại/opt/java/lib/somedir /some.jar bạn có thể nói cho nhóm biết nơi tìm chúng bằng cách thêm chúng vào mục nhập Bundle-ClassPath trong MANIFEST.MF trong META-INF. Cú pháp là: Bundle-classpath:., bên ngoài: /opt/java/lib/somedir/some.jar, bên ngoài: /opt/java/lib/someotherdir/someother.jar

Ngoài ra nó sẽ là thận trọng để sử dụng chúng trong đường dẫn xây dựng của bạn để bạn đang làm việc với các jars giống nhau trong cả môi trường xây dựng và thời gian chạy.

Tôi đã làm điều này, nơi các lọ là đa mục đích (như apache-commons) trên các hệ thống tệp của chúng tôi và một lần nữa chúng tôi kiểm soát môi trường.

tham khảo như sau: http://www.eclipsezone.com/eclipse/forums/t51870.html

+0

Cảm ơn bạn !!! Đây là câu trả lời thực tế và nó hoạt động !. Chỉ cần lưu ý rằng '* .jar' sẽ không hoạt động. – ACV

1
  1. Sao chép cần tập tin JAR bên ngoài vào một thư mục trong dự án plug-in của bạn; Tôi thích gọi thư mục này lib, nhưng bất cứ điều gì làm việc cho bạn.
  2. .. nhưng như apposed để Zsolt Török (giải pháp của ông đã không làm việc cho tôi) tôi nhấp đúp vào plugin.xml, đi đến tab xây dựng, ở phía dưới, tôi nhấp vào Thêm JAR ... và hey Ví dụ, nó cho thấy dự án của tôi, và sau đó tôi điều hướng đến lib và bao gồm các bình bên ngoài, theo từng bước 1.
0

Cách tiếp cận từ Andy Thomas chủ yếu là hoạt động, nhưng bạn cũng cần xuất các gói cần thiết hiện có plugin trong trình bao bọc mới để chúng có thể được plugin truy cập khi chạy.

+0

câu trả lời này phù hợp hơn cho nhận xét. Cũng chào mừng bạn đến với SO :). –

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