폐쇄망 maven 빌드 에러 해결 방법 : [ERROR] Failed to execute goal on project XXX Could not resolve dependencies for project co.xxx.yyy:zzz:war:0.0.1-SNAPSHOT

예원·2023년 7월 4일
0

Spring 글 모아보기

목록 보기
17/17

에러 메시지

[ERROR] Failed to execute goal on project XXX: Could not resolve dependencies for project co.xxx.yyy:zzz:war:0.0.1-SNAPSHOT: Failed to collect dependencies at org.springframework.boot:spring-boot-starter-webflux:jar:3.1.1: Failed to read artifact descriptor for org.springframework.boot:spring-boot-starter-webflux:jar:3.1.1: Could not transfer artifact org.springframework.boot:spring-boot-starter-webflux:pom:3.1.1 from/to egovframe (https://maven.egovframe.go.kr/maven/): transfer failed for https://maven.egovframe.go.kr/maven/org/springframework/boot/spring-boot-starter-webflux/3.1.1/spring-boot-starter-webflux-3.1.1.pom: Connect to maven.egovframe.go.kr:443 [maven.egovframe.go.kr/211.188.81.8] failed: Connection timed out (Connection timed out) -> [Help 1]


원인

maven은 pom.xml에 있는 라이브러리들을 자동으로 다운로드 받아 추가해준다.

다운로드 하려고 보니 maven repo에 접근하지 못해, 라이브러리를 다운받지 못하고 있다.

해결 방법

해결 방법은 간단하다.

1) 라이브러리 jar 파일을 직접 다운로드 한다.(https://mvnrepository.com/)

2) 빌드하려는 환경의 maven repo에 경로에 맞게 jar파일을 넣어준다.

  • 윈도우 기본 위치 : C:\Users\[사용자명]\.m2\repository
  • 리눅스 기본 위치 : /home/[사용자명]/.m2/repository
  • 기본위치에서, 각 라이브러리의 group id, artifact id, version 폴더로 이동하여 jar 파일을 넣어주면 된다.

나의 경우

해당 프로젝트는 다음과 같은 환경에서 이루어져 있다.

  • Docker를 사용하여 Jenkins 설치
  • Jenkins를 통해 배포

따라서 Jenkins의 maven repo 위치에 jar 파일을 추가해줘야 한다.

나의 경우 maven repo는 /var/jenkins_home 였으며, Docker에 volume 설정을 해주었다.

volumes:
  - /data/jenkins/home:/var/jenkins_home

오류가 난 라이브러리의 jar 파일을 다운로드 한 뒤,

.m2/repository/org/springframework/boot/spring-boot-starter-webflux/3.1.1 경로에 jar 파일을 추가해주었다.


참고

0개의 댓글