Mavens repository-proxy hører til i dens settings.xml. Når et Jenkins-build allerede kører i en Maven-container, skal du give den fil til den Maven-proces, der kører der.

Gem den komplette tilsigtede settings.xml som en Jenkins Secret file-legitimation med navnet maven-proxy-settings. Inde i det eksisterende container-trin:

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

Bindingen leverer en midlertidig filsti. Groovy-strengen med enkelte anførselstegn overlader variabeludvidelse til shellen, og shellens dobbelte anførselstegn bevarer stien som ét argument. Mavens -s-indstilling vælger den fil som brugerindstillinger; -B vælger batchtilstand.

Legitimationsfilen kan indeholde buildets proxyvært, port, godkendelse og nonProxyHosts i sin proxies-sektion sammen med andre nødvendige brugerindstillinger. En proxyomgåelsesliste i Maven bruger lodrette streger mellem værtsmønstre.

Filen skal findes der, hvor Maven kører

Med Docker Pipeline har agenten og containeren brug for et kompatibelt monteret filsystem, så den bundne sti kan læses inde i udførelsescontaineren. En manuelt startet docker run kræver en eksplicit filmontering, helst skrivebeskyttet, og Maven skal modtage stien på containersiden. At sende en værtssti som miljøvariabel alene gør ikke filen tilgængelig.

Hold enhver ændring af arbejdsbiblioteket inde i legitimationsbindingsblokken, så den hemmelige fil ikke placeres under et gennemsøgbart underbibliotek i arbejdsområdet. Undlad at printe filen i buildloggen eller kopiere den til et vedvarende image.

Dette vælger brugerindstillinger. Mavens globale indstillinger kan stadig deltage, så gennemgå begge, hvis et nedarvet spejl eller en anden konfiguration fortsat påvirker opløsningen.

Relaterede artikler