Проксі рэпазіторыя Maven належыць у яго settings.xml. Калі зборка Jenkins ужо выконваецца ў кантэйнеры Maven, перадайце гэты файл працэсу Maven, які працуе там.

Захавайце поўны settings.xml як уліковыя даныя Jenkins Secret file з імем maven-proxy-settings. Унутры крокаў існуючай стадыі кантэйнера:

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

Прывязка дае часовы шлях да файла. Радок Groovy у адзінарных лапках пакідае разгортванне зменных абалонцы, а падвойныя лапкі абалонкі захоўваюць шлях як адзін аргумент. Параметр -s у Maven выбірае гэты файл як карыстальніцкія налады; -B выбірае пакетны рэжым.

Файл уліковых даных можа змяшчаць хост проксі, порт, аўтэнтыфікацыю і nonProxyHosts у раздзеле proxies, разам з іншымі патрэбнымі карыстальніцкімі наладамі. Спіс абыходу проксі ў Maven выкарыстоўвае вертыкальныя рыскі паміж шаблонамі хостаў.

Файл мусіць існаваць там, дзе працуе Maven

З Docker Pipeline агенту і кантэйнеру патрэбна сумяшчальная змантаваная файлавая сістэма, каб прывязаны шлях чытаўся ўнутры кантэйнера выканання. Запуск docker run уручную патрабуе яўнага мантавання файла, пераважна толькі для чытання, і Maven мусіць атрымаць шлях з боку кантэйнера. Перадача шляху хоста толькі як зменнай асяроддзя не робіць файл даступным.

Трымайце любую змену працоўнага каталога ўнутры блока прывязкі ўліковых даных, каб сакрэтны файл не апынуўся ў прагляданай падкаталогавай працоўнай прасторы. Не выводзьце файл у журнал зборкі і не капіюйце яго ў пастаянны вобраз.

Гэта выбірае карыстальніцкія налады. Глабальныя налады Maven таксама могуць удзельнічаць, таму праглядзіце абодва, калі ўспадкаванае люстэрка або іншая канфігурацыя працягвае ўплываць на развязанне.

Падобныя артыкулы