Programming/Java

(SpringFrameWork) Dependency 오류 시 봐야할것. dependencies could not be resolved

armyost 2022. 1. 20. 18:12
728x90

늘 사용하던 환경이 아닌 새로운 환경에서 SpringFramework 세팅을 하다보면 여러 난관에 봉착한다. 

회사마다 특정 Private Nexus Central Repository에 연동하는 경우도 많고 보안적인 이유때문에 인증서관련 네트워크 문제도 있다. 

 

이럴때 우선 하나하나 체크해가며 확인해보자.

 

참고로 Maven Build를 기준하여 설명한다. 

[Run As]-[Maven Clean]을 하고 [Maven Build]를 하자. 

만약 Dependency문제가 있으면 'dependencies could not be resolved...' 라고 뜰것이다. 

 

 

 

 

1. Maven settings.xml 확인

~/maven/conf/settings.xml 을 에디터로 열어 Central Repository가 어디인지 확인한다. 

만약 https://repo.maven.apache.org 가 아니라면 위처럼 'https://repo.maven.apache.org'라고 뜨는 것은 설정된 Central Repository에서 1차적으로 못찾았기 때문이다. 

 

2. 해당 jar에 파일을 다운로드 받는 Download 경로를 찾자.

[INFO] Downloading: https://armyost.tistory.org/maven2/org/jacoco/org.jacoco.re.......

라고 뜰것이다. 주소를 긁어 브라우저에 붙여넣어 실제로 있는 경로인지 확인하자.

실제로 경로가 없다면 해당 주소를 불러오는 Dependency를 수정해야 한다. 

 

3. 작업중인 Project의 pom.xml을 열어 관련 Dependency를 찾자.

해당 Dependency 파일을 파일탐색기에서 들어가자. 

~/maven/repository/... 에서 문제가되면 Dependency 경로를 따라가보자. 예를들어 com.armyost.temp.jar라면 /com/armyost/로 이동해야 한다. 이 파일 마저 없다면 애초에 Dependency 경로가 잘못된 것이다.

 

경로가 정상적으로 있다면, 해당 파일에 pom파일이 있을텐데 그 pom파일을 열어보면 관련한 dependency 다운로드 경로가 나와있다. 아마 아까 문제 있었던 https://armyost.tistory.org/maven2/org/jacoco/.. 가 있을것이다. 이를 올바르게 수정하자.