2011-10-06 29 views
11

Tôi đã sao chép các JAR vào src\main\webapp\WEB-INF\lib.
Tôi sử dụng nhật thực. Nếu tôi thêm các jars từng cái một vào Project-> Java Build Path-> Add jars, thì tôi làm Project-> Maven-> Update Project Configuration, chúng được loại bỏ bởi Maven. Và Eclipse cho thấy các lỗi có chứa "xxx không thể được giải quyết".Maven: Làm thế nào để bao gồm các lọ trong Eclipse, mà không có sẵn trong kho lưu trữ?

Env: 
Eclipse Java EE IDE for Web Developers. 
Version: Indigo Service Release 1 
Build id: 20110916-0149 

m2e - Maven Integration for Eclipse 1.0.100.20110804-1717 

Lưu ý: Tôi không muốn tạo kho lưu trữ Maven của riêng mình. Nó sẽ chỉ được sử dụng một lần.
Tôi nên tiếp tục như thế nào?

Trả lời

18

Không phải tất cả các thư viện đều có thể được tìm thấy trong kho lưu trữ Maven công cộng, ví dụ như thư viện của riêng bạn hoặc thư viện độc quyền. Dù sao trước tiên bạn có thể search the Maven Repository, có thể một số người trong số họ đang ở đó.

Trong trường hợp họ thực sự không có, và bạn không muốn cài đặt Nexus hoặc Artifactory, bạn có thể chọn một trong hai phương pháp sau đây:

  • cài đặt các lọ trong bộ nhớ cache kho địa phương của bạn, không có cần tạo một kho lưu trữ đặc biệt. Xem instructions on mkyong.

  • một cách tiếp cận khác là sử dụng phụ thuộc hệ thống, bạn chỉ cần đặt đường dẫn để tiếp cận với Jar trong hệ thống tệp. Đó là một cách tiếp cận ít được đề nghị, nhưng nếu bạn thực sự muốn nó sẽ làm việc. Đây là official documentation.

+0

Trên thực tế, nó là một rất dự án cũ với quá nhiều JARs.I donot wnat để cài đặt JARs trong reposity địa phương của tôi. – fjjiaboming

+0

Bạn có thể sử dụng các phụ thuộc hệ thống sau đó. Tôi đã thêm nó vào câu trả lời. – stivlo

+0

Tôi thực sự donot như cách tiếp cận 2. Đầu tiên, một trong những jar đến một denpendcy; Thứ hai, quá nhiều JARs mà tôi cần phải tự thêm phụ thuộc một-by-một. Vì vậy, tôi phải áp dụng cách tiếp cận 1 để cài đặt kho lưu trữ cục bộ một-by-một nếu không có cách tiếp cận tốt hơn. Cảm ơn! – fjjiaboming

2

Thêm số này là Systems Dependency.


Trong trường hợp bạn muốn thêm này (điều này sử dụng jquantlib làm ví dụ) với maven sử dụng repo địa phương:

mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar 

Để làm được điều này, tôi sử dụng một tập tin batch

@echo off 

cd lib 

CMD /C "mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-helpers-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-helpers -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4-ubber.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-ubber -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-samples -Dversion=0.2.4 -Dpackaging=jar" 

CMD /C "mvn install:install-file -Dfile=./ta-lib-0.4.0.jar -DgroupId=com.tictactec -DartifactId=ta-lib -Dversion=0.4.0 -Dpackaging=jar" 

Bạn có thể sử dụng tệp tập lệnh tương tự trên các hệ thống khác.

0

Tôi tin rằng cách tiếp cận phụ thuộc hệ thống không nên được sử dụng trừ khi bạn không có lựa chọn nào khác, và đó là vì bạn đang mất toàn bộ 'xây dựng tính di động' ở đây. Tất nhiên bạn có thể lưu trữ lọ của bạn trong hệ thống kiểm soát nguồn của bạn cùng với các tệp nguồn của dự án của bạn, nhưng tôi không nghĩ rằng đó là một cách tiếp cận tốt ...

Chỉ sử dụng cài đặt: tập tin cài đặt không đủ tốt - điều này thực sự sẽ triển khai các lọ ở định dạng thích hợp vào kho lưu trữ cục bộ của bạn, nhưng điều gì sẽ xảy ra khi bạn sẽ chuyển sang một máy tính khác và bắt đầu xây dựng dự án của bạn ở đó? Bạn sẽ cần phải thực hiện điều này một lần nữa. Vì vậy, nếu bạn không muốn cài đặt nexus/artifactory (đó là giải pháp tốt nhất, tôi tin), bạn có thể nên tạo một kho lưu trữ khác (chỉ trong một hệ thống tệp trên một số máy chủ của bạn) và triển khai các lọ ở đó (bạn có thể sử dụng mvn install: install-file như đã được đề xuất ở đây, và sau đó chỉ cần sao chép toàn bộ cây). Bây giờ bạn có thể cấu hình máy chủ web apache và truy cập thư mục với tất cả các lọ của bạn thông qua http. Tôi không tin rằng phương pháp tiếp cận nexus/artifactory của nó tốt hơn, nhưng có thể dễ dàng hơn nếu bạn quen thuộc với máy chủ web apache. Để nhận được maven của bạn về kho lưu trữ mới này, bạn cần chỉnh sửa tệp% MAVEN_HOME% \ conf \ settings.xml

0

Để thêm tệp JAR bên ngoài không có trong kho lưu trữ cục bộ, chỉ cần nhấp chuột phải vào nguồn chính của bạn thư mục và từ menu đường dẫn xây dựng chọn: "cấu hình đường dẫn xây dựng", sau đó điều hướng đến tab thư viện và nhấp vào "thêm tệp JAR bên ngoài". tiếp theo, định vị tệp JAR (hoặc zip) mà bạn muốn thêm làm thư viện và bấm OK.

Xin chúc mừng, bây giờ bạn đã thêm thành công một JAR bên ngoài (hoặc zip) để xây dựng con đường của bạn và bây giờ bạn có thể nhập bất kỳ lớp học từ đó tập tin JAR trong dự án của bạn mà không cần ném một lỗi Picture How-To :) http://hostthenpost.org/uploads/541be8420657320c74489ff8d456ad08.png

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