셸의 NO_PROXY 변수에서 복사한 예외가 Maven에서 자동으로 유효한 것은 아닙니다. Maven의 nonProxyHosts 목록은 환경 변수에서 흔한 쉼표 구분 형식이 아니라 항목 사이에 세로 막대를 사용합니다.

대상 사용자 설정의 프록시 항목은 다음처럼 보일 수 있습니다.

<settings>
  <proxies>
    <proxy>
      <id>outbound-proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>203.0.113.10</host>
      <port>8080</port>
      <nonProxyHosts>localhost|*.example.internal</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

이는 proxies 섹션 주변 설정을 보여 주는 예시 조각입니다. 관련 없는 mirrors, servers, profiles를 바꾸지 말고 기존 설정 파일에 병합하세요. 실제 프록시 주소를 사용하세요. 저장소 요청에 공용 HTTP 프록시가 허용된다면 HTTP 프록시 목록에서 호스트와 포트 후보 쌍을 찾을 수 있습니다.

저장소 호스트에 맞추기

Maven이 실제로 접속하는 호스트 이름에 예외를 적용하세요. 내부 저장소 URL과 공개 다운로드 호스트 이름에는 서로 다른 경로가 필요할 수 있습니다. 경로를 포함한 전체 저장소 URL을 호스트 패턴용 필드에 넣지 마세요.

와일드카드는 지원되지만 오류 하나를 없애려고 지나치게 넓은 패턴을 사용하지 마세요. 변경 후 대상 내부 이름과 공개 저장소를 따로 확인하세요.

실제로 사용되는 설정 찾기

Maven은 전역 설정과 사용자 설정을 합칠 수 있고 호출 시 다른 설정 파일을 선택할 수 있습니다. IDE가 터미널과 다른 Maven 설치나 구성을 사용할 수도 있습니다. 실패한 호출이 읽지 않는 파일을 편집해도 경로는 바뀌지 않습니다.

프록시의 활성화 플래그도 중요합니다. 비활성 항목에 호스트와 포트를 올바르게 적어도 Maven이 선택한다는 뜻은 아닙니다.

두 서버를 분리하기

프록시 자격 증명은 서비스가 요구할 때 프록시 항목에 둡니다. 비공개 아티팩트 저장소 자격 증명은 해당 서버 구성에 둡니다. 저장소 토큰을 제공해도 프록시 인증 challenge에 답할 수 없습니다.

요청이 계속 실패하면 선택된 저장소 URL, 응답 또는 연결 오류, 적용된 설정의 출처를 기록하세요. 먼저 요청이 프록시를 거쳐야 했는지 직접 연결이어야 했는지 확인하세요. 목록 문법과 엔드포인트를 동시에 바꾸면 결과를 해석하기 어렵습니다.

관련 글