2011-11-14 31 views
5

Tôi có một dự án có nhiều phụ thuộc vào rất nhiều kho lưu trữ từ xa và ngay cả những phụ thuộc đó đôi khi cũng yêu cầu các kho lưu trữ từ xa khác.Proxy tất cả kho lưu trữ phụ thuộc maven thông qua Nexus

Tôi muốn tạo môi trường xây dựng ổn định và tôi muốn cài đặt Nexus địa phương của mình thành proxy tất cả yêu cầu của dự án để tôi có thể tái tạo các bản dựng mà không cần truy cập internet sau khi tôi thiết lập mọi thứ một lần.

Tức là, .m2/settings.xml của tôi sẽ bao gồm:

<mirrors> 
    <mirror> 
     <id>my.public</id> 
     <url>http://localhost:8081/nexus/content/groups/public</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
</mirrors> 

Nhưng tất nhiên điều này là không đủ. Nexus sẽ không tùy ý ủy quyền cho từng yêu cầu và mọi yêu cầu của nó sẽ được cài đặt từ maven của tôi.

Hiện tại khi tôi hiểu và đây là cách tôi làm việc đó, với mọi kho lưu trữ từ xa tôi gặp phải, tôi tạo proxy trong Nexus và thêm nó vào nhóm công khai.

Trong trường hợp của tôi, chúng giống như 15 hoặc 20 kho lưu trữ từ xa. Hầu hết trong số đó là sự phụ thuộc của các gói của tôi, tức là không rõ ràng rằng tôi cần chúng cho đến khi tôi chạy một maven build và nhấn chúng. Tôi thấy chúng được tham chiếu chủ yếu trong các POM mẹ cho đến nay.

Câu hỏi của tôi: có cách nào để định cấu hình Nexus bằng cách nào đó không, vì vậy tôi không cần phải thêm từng kho lưu trữ bằng tay?

Khi tôi đọc lại câu hỏi của mình, dường như tôi muốn có một proxy HTTP thực sự nhưng điểm của Nexus là gì? Tất nhiên đây là một câu hỏi hùng biện, nhưng làm thế nào để giải quyết vấn đề này mà không cần thêm tất cả chúng bằng tay?

Tất cả tôi tìm thấy trong các tài liệu Nexus là http://www.sonatype.com/books/nexus-book/reference/config-sect-custom.html:

... bạn có thể gặp các dự án không có khả năng thu hồi hiện vật từ cài đặt Nexus địa phương của bạn

... thêm kho lưu trữ này vào Nexus làm kho lưu trữ proxy mới và sau đó thêm kho lưu trữ proxy mới vào nhóm công khai

Trả lời

2

Không phải là tôi biết. Chúng tôi hiện có 30-40 kho được nhân đôi thông qua việc cài đặt Nexus của chúng tôi vì lý do này. Chúng tôi sử dụng một câu lệnh tương tự trong tệp settings.xml để buộc mọi người sử dụng repo của chúng tôi làm cửa hàng một cửa. Tuy nhiên, chúng tôi thực thi (thông qua chính sách) rằng các nhà phát triển không thêm kho lưu trữ vào các tệp pom trong các dự án. Thay vào đó, họ gửi yêu cầu để thêm một proxy.

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