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-এর গ্লোবাল সেটিংসও অংশ নিতে পারে, তাই উত্তরাধিকারসূত্রে পাওয়া মিরর বা অন্য কনফিগারেশন যদি রিজলিউশনকে প্রভাবিত করতে থাকে তবে দুটিই পর্যালোচনা করুন।

সম্পর্কিত নিবন্ধ