1 minute read

이번 포스트는 이전 포스트의 maven에서 nexus의 SNAPSHOT repository를 사용하도록 설정하면서 발생한 에러에 대해서 다음에도 동일한 에러가 발생했을 시 신속하게 대처하기 위해 미리 알아보고 어떻게 해결했는지에 대해서 기록하고자 작성했습니다.

본 포스트에서는 IDE를 intellij 사용 시 발생하는 Since Maven 3.8.1 http repositories are blocked error 에러에 대해서만 다룹니다.

1. Since Maven 3.8.1 http repositories are blocked error란?

Since Maven 3.8.1 http repositories are blocked error는 현재 프로젝트에서 사용중인 maven의 버전이 3.8.1이며 해당 maven 버전에서는 http를 지원하지 않아서 발생하는 에러입니다.

maven 3.8.1에서는 http에 대한 외부 연결을 막는 설정이 default로 변경되었다고 합니다.
https://maven.apache.org/docs/3.8.1/release-notes.html
이로 인해서 대개 maven에서 nexus에 있는 모듈 라이브러리를 참조하고자 할 때 http를 사용해서 Since Maven 3.8.1 http repositories are blocked error가 많이 발생합니다. 특히 pc나 노트북을 포맷했거나, 새 pc나 노트북을 받게 되어 개발 환경 세팅을 다시 하게 되면서 IDE(주로 Intellij)를 이전에 사용하던 버전이 아닌 최신 버전을 사용하게 되어 maven 버전이 자동으로 올라가게 되면서 이런 문제가 자주 발생하는 듯 합니다.

2. 에러 발생 원인

제 경우 에러가 발생한 원인은 intellij 버전 업데이트를 진행하면서 intellij에 내포되어 있는 maven의 버전도 같이 올라가게 되어서 발생한 것으로 추정됩니다.

에러를 발생시킨 작업으로는 maven에서 nexus SNAPSHOT repository를 사용하도록 pom.xml을 수정하고 deploy를 실행할 때 발생 했습니다.

3. 해결 방법

해결 방법으로는 Maven Wrapper를 사용하여 해결하였습니다.
Maven Wrapper에 대해서 간략하게 설명을 드리자면 maven이 설치되어 있지 않거나, 현재 프로젝트에서 요구하는 버전으로 유지하기 위해 사용되는 도구입니다.
저는 intellij 업데이트로 maven이 3.8.1로 버전이 업그레이드 되어 http를 사용할 수 없다는 에러가 발생했습니다.
따라서 http를 사용하도록 maven의 버전을 변경하면 되는데 그렇다고 maven의 버전 패치 내역들을 읽어 보는 것은 비효율적이니 Maven Wrapper를 사용하여 자동으로 프로젝트에 맞는 maven 버전을 사용하도록 하면 문제 해결이 됩니다.

intellij에서 Maven Wrapper 적용하는 방법

  1. intellij 왼쪽 위의 File에서 Settings를 클릭

  2. Build, Execution, Deployment>Maven에서 Maven home path를 Use Maven wrapper로 변경

  3. 설정 변경 후 BUILD SUCCESS 확인

마치며

intellij 업데이트 후에 저와 같이 Since Maven 3.8.1 http repositories are blocked error 에러를 겪으시는 분들이 많으실텐데 그 분들에게 이 포스트가 많은 도움이 되었으면 좋겠습니다.

궁금하신 내용이나 잘못된 내용이 있을 경우에는 댓글 달아주시기 바라며 긴 글 읽어주셔서 감사합니다.

참조

https://maven.apache.org/wrapper/

Comments