Mavens depotproxy hører hjemme i dens settings.xml. Når et Jenkins-bygg allerede kjører i en Maven-container, gi den filen til Maven-prosessen som kjører der.

Lagre den komplette tiltenkte settings.xml som en Jenkins Secret file-legitimasjon med navnet maven-proxy-settings. Innenfor trinnene i det eksisterende container-stadiet:

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

Bindingen gir en midlertidig filsti. Groovy-strengen med enkle anførselstegn overlater variabelekspansjonen til skallet, og skallets doble anførselstegn bevarer stien som ett argument. Mavens -s-valg velger den filen som brukerinnstillinger; -B velger batch-modus.

Legitimasjonsfilen kan inneholde byggets proxyvert, port, autentisering og nonProxyHosts i proxies-delen, sammen med andre nødvendige brukerinnstillinger. En proxy-omgåelsesliste i Maven bruker loddrette streker mellom vertsmønstre.

Filen må finnes der Maven kjører

Med Docker Pipeline trenger agenten og containeren et kompatibelt montert filsystem slik at den bundne stien er lesbar inne i kjørecontaineren. En docker run som startes manuelt trenger en eksplisitt filmontering, helst skrivebeskyttet, og Maven må motta stien på container-siden. Å sende en vertssti bare som miljøvariabel gjør ikke filen tilgjengelig.

Hold enhver endring av arbeidskatalogen inne i legitimasjonsbindingsblokken slik at den hemmelige filen ikke havner under et gjennomsøkbart underkatalog-arbeidsområde. Ikke skriv filen ut i byggeloggen og ikke kopier den til et varig image.

Dette velger brukerinnstillinger. Mavens globale innstillinger kan fortsatt delta, så gjennomgå begge hvis et nedarvet speil eller en annen konfigurasjon fortsatt påvirker oppløsningen.

Relaterte artikler