Maven ची रिपॉझिटरी प्रॉक्सी तिच्या settings.xml मध्ये असते. जेव्हा Jenkins बिल्ड आधीच Maven कंटेनरमध्ये चालत असेल, तेव्हा ती फाइल तिथे चालणाऱ्या Maven प्रक्रियेला द्या.

संपूर्ण इच्छित settings.xml maven-proxy-settings नावाच्या Jenkins Secret file क्रेडेन्शियल म्हणून साठवा. विद्यमान कंटेनर स्टेजच्या पायऱ्यांमध्ये:

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

बाइंडिंग तात्पुरता फाइल मार्ग देते. एकेरी अवतरणातील Groovy स्ट्रिंग व्हेरिएबल विस्तार shell वर सोडते, आणि shell चे दुहेरी अवतरण मार्ग एकच आर्ग्युमेंट म्हणून ठेवतात. Maven चा -s पर्याय ती फाइल वापरकर्ता सेटिंग्ज म्हणून निवडतो; -B बॅच मोड निवडतो.

क्रेडेन्शियल फाइलमध्ये बिल्डचा प्रॉक्सी होस्ट, पोर्ट, प्रमाणीकरण आणि nonProxyHosts तिच्या proxies विभागात असू शकतात, शिवाय इतर आवश्यक वापरकर्ता सेटिंग्ज. Maven मधील प्रॉक्सी बायपास यादी उभ्या पट्ट्या वापरते होस्ट पॅटर्नमध्ये.

फाइल Maven जिथे चालते तिथेच असली पाहिजे

Docker Pipeline सह, एजंट आणि कंटेनरला सुसंगत माउंट केलेली फाइलसिस्टम लागते, जेणेकरून बाइंड केलेला मार्ग कार्यान्वित कंटेनरमध्ये वाचता येईल. हाताने सुरू केलेल्या docker run ला स्पष्ट फाइल माउंट लागते, शक्यतो फक्त-वाचन, आणि Maven ला कंटेनर-बाजूचा मार्ग मिळाला पाहिजे. फक्त पर्यावरण चल म्हणून होस्ट मार्ग देऊन फाइल उपलब्ध होत नाही.

कार्यरत डिरेक्टरीचा कोणताही बदल क्रेडेन्शियल-बाइंडिंग ब्लॉकमध्ये ठेवा, जेणेकरून गुप्त फाइल ब्राउझ करण्याजोग्या उप-डिरेक्टरी कार्यक्षेत्रात येणार नाही. फाइल बिल्ड लॉगमध्ये छापू नका आणि ती कायमस्वरूपी इमेजमध्ये कॉपी करू नका.

हे वापरकर्ता सेटिंग्ज निवडते. Maven ची जागतिक सेटिंग्जही सहभागी होऊ शकतात, म्हणून वारसाहक्काने मिळालेला मिरर किंवा अन्य कॉन्फिगरेशन अजूनही रिझोल्यूशनवर परिणाम करत असेल तर दोन्ही तपासा.

संबंधित लेख