2010-03-19 30 views
5

Tôi có một dự án maven có một bộ các phụ thuộc thư viện không có sẵn thông qua bất kỳ kho lưu trữ maven nào. Làm thế nào tôi có thể thêm các thư viện vào pom? Tôi muốn làm điều này vì vậy khi tôi chạy 'mvn eclipse: eclipse' nó không loại bỏ những thư viện từ classpath eclipse.Maven, cách thêm các lib bổ sung không có sẵn trong repo

Trả lời

3

Bạn có 3 lựa chọn:

  • Thêm thư viện của bạn để kho địa phương của bạn thông qua install:install-file (rõ ràng, đây không phải di động, bạn sẽ không thể để xây dựng dự án trên máy tính khác mà không làm giống nhau).
  • Cài đặt và chạy "kho lưu trữ doanh nghiệp" như Nexus, Archiva hoặc Artifactory và thêm thư viện của bạn qua deploy:deploy-file.
  • Thiết lập kho lưu trữ dựa trên tệp như được mô tả trong previous answer này và đặt các thư viện của bạn vào đó.

Sau đó, hãy khai báo thư viện của bạn trong thư mục giống như bất kỳ sự phụ thuộc nào khác.

0

Bạn không thể 'thêm chúng vào pom'. Bạn phải đặt chúng trong một số repo. Bạn có thể đặt chúng trong repo cục bộ với maven-install-plugin, như được gợi ý bởi thông báo lỗi. Hoặc bạn có thể triển khai chúng trong một bản sao Nexus địa phương hoặc một cái gì đó giống như nó.

6

Bạn có thể tuyên bố nó là phụ thuộc với phạm vi system.

<project> 
... 
<dependencies> 
    <dependency> 
    <groupId>sun.jdk</groupId> 
    <artifactId>tools</artifactId> 
    <version>1.5.0</version> 
    <scope>system</scope> 
    <systemPath>${java.home}/../lib/tools.jar</systemPath> 
    </dependency> 
</dependencies> 
... 
</project> 
+2

Không được đề xuất gì cả! Đây là một hack, phạm vi hệ thống không dành cho việc sử dụng này và điều này là hạn chế/tác dụng phụ. –

+0

Tôi không đồng ý với bạn. Câu hỏi không chỉ rõ bất cứ điều gì về mục đích sử dụng. Anh ta cần thêm nó để nhật thực không loại bỏ nó khỏi classpath. – YuppieNetworking

+0

Đối với bất kỳ dự án nghiêm trọng nào mà sau này có thể sử dụng những thứ như plugin lắp ráp, bạn không muốn sử dụng phạm vi hệ thống. Đây chỉ là một thực tế xấu, tôi không khuyên bạn nên nó. –

1

Bạn có thể đưa chúng vào dự án của mình trong thư mục con (có thể là lib /). Bạn cũng có thể cung cấp các tệp .bat và/hoặc .sh chứa tất cả các lệnh thích hợp tới maven-install-plugin cần thiết cho mỗi thành viên dự án (hoặc máy chủ env) để thêm các jars này vào repo cục bộ.

Cách tiếp cận này cho phép các thành viên dự án mới thức dậy & chạy nhanh, mà không phải đầu tư vài giờ để thiết lập repo công khai mới cho dự án hoặc nhóm của bạn.

0

gần đây tôi đã tạo một giao diện người dùng nhỏ để cài đặt thư viện cho kho lưu trữ cục bộ của bạn. Nó hoạt động theo cùng một cách như install:install-file.

https://github.com/escv/maven-install-ui

+0

Vui lòng bao gồm một số mã về cách hoạt động của tính năng này thay vì chỉ một liên kết. – krillgar

+0

không cần mã vì nó là một ứng dụng giao diện người dùng có thể chạy được nhỏ. Liên kết tải xuống là: [https://github.com/escv/maven-install-ui/raw/master/maven-install-ui/dist/maven-install-ui-0.0.1-with-dependencies.jar] (https://github.com/escv/maven-install-ui/raw/master/maven-install-ui/dist/maven-install-ui-0.0.1-with-dependencies.jar) –

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