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 की ग्लोबल सेटिंग्स भी भाग ले सकती हैं, इसलिए दोनों की समीक्षा करें यदि विरासत में मिला मिरर या कोई अन्य कॉन्फ़िगरेशन अब भी रिज़ॉल्यूशन को प्रभावित करता है।

संबंधित लेख