Proxy repositori Maven berada di settings.xml-nya. Saat build Jenkins sudah berjalan di dalam kontainer Maven, berikan file itu kepada proses Maven yang berjalan di sana.

Simpan settings.xml lengkap yang dimaksud sebagai kredensial Jenkins Secret file bernama maven-proxy-settings. Di dalam langkah-langkah tahap kontainer yang ada:

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

Pengikatan menyediakan jalur file sementara. String Groovy dengan kutip tunggal menyerahkan perluasan variabel kepada shell, dan kutip ganda shell mempertahankan jalur sebagai satu argumen. Opsi -s Maven memilih file itu sebagai pengaturan pengguna; -B memilih mode batch.

File kredensial dapat memuat host, port, autentikasi, dan nonProxyHosts proxy build di bagian proxies, bersama pengaturan pengguna lain yang diperlukan. Daftar lewati proxy di Maven memakai garis vertikal di antara pola host.

File harus ada di tempat Maven berjalan

Dengan Docker Pipeline, agen dan kontainer memerlukan sistem file ter-mount yang kompatibel agar jalur terikat dapat dibaca di dalam kontainer eksekusi. docker run yang dijalankan manual memerlukan mount file eksplisit, sebaiknya hanya-baca, dan Maven harus menerima jalur sisi kontainer. Meneruskan jalur host hanya sebagai variabel lingkungan tidak membuat file tersedia.

Pertahankan setiap perubahan direktori kerja di dalam blok pengikatan kredensial agar file rahasia tidak berada di ruang kerja subdirektori yang dapat dijelajahi. Jangan cetak file ke log build atau menyalinnya ke image permanen.

Ini memilih pengaturan pengguna. Pengaturan global Maven tetap dapat ikut berperan, jadi tinjau keduanya jika mirror warisan atau konfigurasi lain masih memengaruhi resolusi.

Artikel terkait