Во-первых: чтобы использовать корпоративный прокси с Maven, вам необходимо настроить его в settings.xml
(см. Настройка прокси в документации Maven).
Во-вторых: в конвейер работает в контейнере, вы можете сделать это разными способами. Вот некоторые из них:
Учитывая, что вы отображаете /root/.m2:/root/.m2
, вы можете просто поместить settings.xml
в /root/.m2
. Это предполагает, что вы выполняете Jenkins как root
, что я настоятельно рекомендую в производственной среде по соображениям безопасности.
Если вы выполняете Jenkins как другой пользователь, вам необходимо соответствующим образом адаптировать отображение тома.
Отобразите файл settings.xml
как том в вашем контейнере и скажите Maven, чтобы он использовался, например:
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v /root/.m2:/root/.m2 -v /path/to/settings.xml:/my/settings.xml:ro'
}
}
stages {
stage('Build') {
steps {
sh 'mvn -s /my/settings.xml -B -DskipTests clean package'
}
}
}
}
Сохраните файл
settings.xml
в качестве учетных данных в Jenkins и используйте его с
withCredentials
, что может иметь смысл, если ваши настройки. xml содержит пароли:
...
steps {
withCredentials([
file(credentialsId: 'maven-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s $MAVEN_SETTINGS -B -DskipTests clean package'
}
}
...
Вместо использования официального изображения Maven
maven:3-alpine
создайте пользовательское изображение, содержащее файл
settings.xml
, и используйте его в своем конвейере.