Proxy repozytorium Mavena należy do jego settings.xml. Gdy kompilacja Jenkinsa działa już w kontenerze Mavena, udostępnij ten plik procesowi Mavena, który tam działa.

Zapisz pełny zamierzony settings.xml jako poświadczenie Jenkins Secret file o nazwie maven-proxy-settings. W krokach istniejącego etapu kontenera:

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

Powiązanie dostarcza tymczasową ścieżkę pliku. Ciąg Groovy w apostrofach pozostawia rozwinięcie zmiennych powłoce, a podwójne cudzysłowy powłoki zachowują ścieżkę jako jeden argument. Opcja -s Mavena wybiera ten plik jako ustawienia użytkownika; -B wybiera tryb wsadowy.

Plik poświadczeń może zawierać host, port, uwierzytelnianie i nonProxyHosts proxy kompilacji w sekcji proxies, wraz z innymi wymaganymi ustawieniami użytkownika. Lista pomijania proxy w Mavenie używa pionowych kresek między wzorcami hostów.

Plik musi istnieć tam, gdzie działa Maven

W Docker Pipeline agent i kontener potrzebują zgodnego zamontowanego systemu plików, aby powiązana ścieżka była czytelna w kontenerze wykonawczym. Ręcznie uruchomiony docker run wymaga jawnego montowania pliku, najlepiej tylko do odczytu, a Maven musi otrzymać ścieżkę po stronie kontenera. Przekazanie ścieżki hosta wyłącznie jako zmiennej środowiskowej nie udostępnia pliku.

Utrzymuj każdą zmianę katalogu roboczego wewnątrz bloku powiązania poświadczeń, aby tajny plik nie trafił do przeglądalnego podkatalogu obszaru roboczego. Nie wypisuj pliku w logu kompilacji i nie kopiuj go do trwałego obrazu.

To wybiera ustawienia użytkownika. Ustawienia globalne Mavena również mogą uczestniczyć, więc przejrzyj oba, jeśli odziedziczone lustro lub inna konfiguracja nadal wpływa na rozwiązywanie zależności.

Powiązane artykuły