Прокси репозитория 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 тоже могут участвовать, поэтому проверьте обе, если унаследованное зеркало или другая конфигурация продолжает влиять на разрешение зависимостей.

Похожие статьи