2013-02-21 27 views
8

Trong file POM của tôi, tôi xác định hai kho:Maven: ý nghĩa của ID kho

<repositories> 
    <repository> 
     <id>myid</id> 
     <url>http://url1</url> 
    </repository> 
    <repository> 
     <id>myid</id> 
     <url>http://url2</url> 
    </repository> 
</repositories> 

Vì vậy, từ tài liệu Maven, tôi có ấn tượng rằng các yếu tố id nên tham khảo chéo với một settings.xmlserver mục nhập, để chỉ định thông tin xác thực. Cả hai http://url1http://url2, trong trường hợp của tôi, yêu cầu dữ liệu xác thực rất giống nhau; đó là lý do tại sao tôi đang sử dụng cùng một id cho cả hai.

Tuy nhiên, Maven than phiền, nói rằng yếu tố id phải là duy nhất.

Điều gì mang lại? Mục đích chính xác của yếu tố id là gì? Tôi biết (chắc chắn) Maven sử dụng nó để lấy dữ liệu xác thực - đó là lý do tại sao mọi thứ hoạt động khi tôi chỉ chỉ định một kho lưu trữ. Tại sao tôi phải sao chép dữ liệu xác thực của mình? tôi đang thiếu gì?

+0

[Như đã nói ở đây] (http://maven.apache.org/settings.html#Servers) có vẻ như Maven liên kết mọi kho lưu trữ với mục nhập máy chủ. Có vẻ như bạn sẽ phải tạo hai mục nhập máy chủ, nhưng bạn không phải sao chép thông tin xác thực của mình, chỉ cần đặt chúng như thuộc tính và sử dụng chúng vào mỗi mục nhập của bạn. –

+0

@XtremeBiker, các thuộc tính được định nghĩa bên trong 'settings.xml' chỉ nằm trong ngữ cảnh của một cấu hình. Vì một số lý do, các thuộc tính này không được mở rộng cho các phần tử 'server'. – Isaac

Trả lời

6

ID phải là duy nhất. Sử dụng 2 cấu hình đăng nhập trong tệp settings.xml của bạn.

+2

Hmmm. Tôi coi đây là một lỗi thiết kế. Có người quên bình thường hóa một cái gì đó. Nhưng cảm ơn bạn. – Isaac

+0

Có vẻ nhiều hơn rằng chúng phải là duy nhất nhưng không phải: https://stackoverflow.com/questions/21836539/sonatype-nexus-how-to-set-a-single-server-credentials-for-multiple-repositories? rq = 1 – Robert