Proxy của kho Maven nằm trong settings.xml của nó. Khi bản dựng Jenkins đã chạy bên trong một container Maven, hãy cung cấp tệp đó cho tiến trình Maven đang chạy ở đó.

Lưu toàn bộ settings.xml dự định dưới dạng thông tin xác thực Jenkins Secret file có tên maven-proxy-settings. Trong các bước của giai đoạn container hiện có:

withCredentials([
    file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
    sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}

Việc liên kết cung cấp một đường dẫn tệp tạm thời. Chuỗi Groovy trong dấu nháy đơn để shell xử lý việc mở rộng biến, và dấu nháy kép của shell giữ nguyên đường dẫn như một đối số duy nhất. Tùy chọn -s của Maven chọn tệp đó làm cấu hình người dùng; -B chọn chế độ hàng loạt.

Tệp thông tin xác thực có thể chứa máy chủ, cổng, xác thực và nonProxyHosts của proxy bản dựng trong phần proxies, cùng với mọi cấu hình người dùng khác cần thiết. Danh sách bỏ qua proxy trong Maven dùng thanh dọc giữa các mẫu máy chủ.

Tệp phải tồn tại ở nơi Maven chạy

Với Docker Pipeline, agent và container cần một hệ thống tệp được gắn kết tương thích để đường dẫn đã liên kết có thể đọc được bên trong container thực thi. Một docker run khởi chạy thủ công cần gắn kết tệp rõ ràng, tốt nhất là chỉ đọc, và Maven phải nhận được đường dẫn phía container. Chỉ truyền đường dẫn máy chủ dưới dạng biến môi trường không làm cho tệp trở nên khả dụng.

Giữ mọi thay đổi thư mục làm việc bên trong khối liên kết thông tin xác thực để tệp bí mật không nằm trong không gian làm việc thư mục con có thể duyệt được. Không in tệp vào nhật ký bản dựng và không sao chép nó vào image lâu dài.

Điều này chọn cấu hình người dùng. Cấu hình toàn cục của Maven cũng có thể tham gia, vì vậy hãy xem xét cả hai nếu một gương kế thừa hoặc cấu hình khác vẫn ảnh hưởng đến việc phân giải.

Bài viết liên quan