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 کی عالمی ترتیبات بھی شریک ہو سکتی ہیں، لہٰذا دونوں کا جائزہ لیں اگر وراثتی آئینہ یا کوئی اور کنفیگریشن اب بھی حل کو متاثر کر رہی ہو۔

متعلقہ مضامین