Проксито на хранилището на 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 с единични кавички оставя разгръщането на променливите на shell, а двойните кавички на shell запазват пътя като един аргумент. Опцията -s на Maven избира този файл като потребителски настройки; -B избира пакетен режим.

Файлът с идентификационни данни може да съдържа хоста, порта, удостоверяването и nonProxyHosts на проксито в секцията proxies, заедно с други необходими потребителски настройки. Списъкът за заобикаляне на прокси в Maven използва вертикални черти между шаблоните за хост.

Файлът трябва да съществува там, където работи Maven

С Docker Pipeline агентът и контейнерът се нуждаят от съвместима монтирана файлова система, за да е четим свързаният път вътре в контейнера за изпълнение. Ръчно стартиран docker run изисква явно монтиране на файл, за предпочитане само за четене, и Maven трябва да получи пътя от страната на контейнера. Подаването на път от хоста само като променлива на средата не прави файла достъпен.

Дръжте всяка смяна на работната директория вътре в блока за свързване, за да не попадне тайният файл в разглеждаемо поддиректорно работно пространство. Не отпечатвайте файла в лога на билда и не го копирайте в постоянен образ.

Това избира потребителски настройки. Глобалните настройки на Maven също могат да участват, затова прегледайте и двете, ако наследено огледало или друга конфигурация продължава да влияе на разрешаването.

Подобни статии