Jenkins контејнери: пренос Maven proxy подешавања тајном датотеком
Повежите Jenkins тајну датотеку и проследите њену видљиву путању у контејнеру mvn -s за proxy конфигурацију билда.
Proxy 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 низ у једноструким наводницима препушта проширење променљивих љусци, а двоструки наводници љуске чувају путању као један аргумент. Maven опција -s бира ту датотеку као корисничка подешавања; -B бира batch режим.
Датотека акредитива може садржати proxy host, порт, аутентификацију и nonProxyHosts билда у својој proxies секцији, заједно са осталим потребним корисничким подешавањима. Листа заобилажења proxy-ja у Mavenu користи вертикалне црте између образаца хоста.
Датотека мора постојати тамо где Maven ради
Уз Docker Pipeline агент и контејнер требају компатибилан монтиран датотечни систем како би повезана путања била читљива унутар извршног контејнера. Ручно покренут docker run захтева изричито монтирање датотеке, по могућству само за читање, а Maven мора примити путању са контејнерске стране. Пренос host путање само као променљиве окружења не чини датотеку доступном.
Задржите сваку промену радног директоријума унутар блока повезивања акредитива како тајна датотека не би доспела у прегледни поддиректоријум радног простора. Не исписујте датотеку у лог билда и не копирајте је у трајну слику.
Ово бира корисничка подешавања. Maven глобална подешавања такође могу учествовати, па прегледајте оба ако наслеђено огледало или друга конфигурација и даље утиче на разрешавање.