2012-07-12 25 views
5

Tôi có tải tệp JAR của bên thứ ba (khoảng 40 JAR khác nhau từ nhiều SDK khác nhau mà tôi đang sử dụng) đang ngồi trong một thư mục trên ổ cứng của mình. Tôi muốn tuyên bố những JAR đó là phụ thuộc trong các dự án maven tương lai của tôi.Triển khai nhiều JAR của bên thứ ba đến toàn cầu (nội bộ) Maven nexus

Tôi không thể lấy các JAR đó từ kho lưu trữ maven toàn cầu như bạn có thể, ví dụ: Log4J, JUnit, Velocity vv, vì chúng không có sẵn ở đó.

Làm cách nào để nhận các tệp JAR này từ thư mục cục bộ của tôi vào kho lưu trữ maven toàn cầu (nhưng nội bộ) của tôi (Nexus)? Các bước cần thiết là gì? Các giải pháp tốt nhất sẽ là một chương trình, nếu đó là có thể ở tất cả.

Tôi nhầm lẫn rằng tôi không thể tìm thấy giải pháp nào cho vấn đề của mình khi sử dụng Google, bởi vì tôi cho rằng đây là một vấn đề rất phổ biến. Vì vậy, có lẽ tôi đang suy nghĩ sai hướng.

Cảm ơn bạn rất nhiều!

Trả lời

9

Bạn có thể cài đặt thư viện vào kho lưu trữ cục bộ của mình với mục tiêu maven-install-plugin (install-file - xem example).

Bạn có thể triển khai các thư viện tới kho lưu trữ từ xa của mình (Nexus) với mục tiêu maven-deploy-plugin (deploy-file - xem example).

Bạn cũng có thể sử dụng ứng dụng web Nexus để tải thư viện lên mối quan hệ (xem Nexus Book - Uploading Artifacts).

+0

Cảm ơn bạn đã trả lời, @FrVaBe. Có cách nào để làm điều này từ Java bằng cách sử dụng bất kỳ API Maven nào không? Tôi đã thử sử dụng Invoker, nhưng theo [tài liệu] (http://maven.apache.org/plugins/maven-invoker-plugin/), mục tiêu triển khai không được hỗ trợ. – HombreFab

+0

@HombreFab Tôi không có kinh nghiệm về việc thực hiện các tác vụ maven theo chương trình nhưng có thể cấu hình maven-deploy-plugin trong phần pom.build.plugin và kích hoạt mục tiêu invoker: install. Trong trường hợp của bạn, phương thức tự động đơn giản nhất đối với tôi có vẻ là một kịch bản lệnh thực thi các lệnh 'mvn deploy: deploy-file' khác nhau. – FrVaBe

+1

Cảm ơn bạn. Tôi sẽ lặp qua các tệp JAR của tôi trong Java và thực thi 'mvn deploy: deploy-file' bằng cách [gọi commandline] (http://www.linglom.com/2007/06/06/how-to-run -command-line-hoặc-execute-external-application-from-java /) từ java trực tiếp cho mỗi tệp. Điều đó sẽ làm điều đó. – HombreFab

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