인텔리제이(IntelliJ)에 프로젝트 세팅을 하기 전에,
이클립스(Eclipse)에서 먼저 정상적으로 실행이 되는지 전부 확인하고 진행을 하는 편이다.
(아직 이클립스가 더 편함ㅠㅜ)
근데 Eclipse에서는 잘 동작하는 소스더라도 새롭게 IntelliJ에 첫 세팅을 하려고 하면 항상 문제가 발생한다. 이때 확인해 볼 부분이 몇 가지가 있는데,
해당 글에서는 Maven update 및 build 시 빌생하는 http blocker 에 대해서 얘기해보겠습니다.
Blocked mirror for repositories
Intellij에서 Maven update를 하려고보니 아래 에러 메시지를 뱉으면서 진행이 안된다.(당연한 말이지만 eclipse에서도 발생할 수 있다)
Could not transfer artifact org.springframework.boot:... from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories:
왜 이런 문제가 발생하는걸까?
이 모든 것의 원흉(?)이자 근본적인 원인은 IntelliJ IDEA는 설치 시 자체 내장된 Maven과 함께 settings.xml 파일을 제공하기 때문이다. 따라서 직접 외부 Maven을 명시적으로 지정하지 않으면, 자동으로 디폴트 내장 Maven과 그 설정 파일을 사용하게 된다.
그리고 비교적 최근에 설치한 IntelliJ에 내장된 Maven의 버전은 3.9.6
Maven은 3.8.1 버전부터 기본적으로 HTTP로 연결된 Repository로부터의 다운로드를 차단하는 'HTTP Blocker' 기능을 포함하고 있다. 보안 강화를 위한 것으로, 이 'HTTP Blocker'가 http에 대한 외부 연결을 막아 https의 사용을 강제하고 있던 것이였다.
다른 Maven을 사용하려면 위 사진과 동일한 경로인 [Settings -> Build, Execution, Deployment -> Build Tools-> Maven]에서 Maven home path의 경로가 올바르게 설정되어있는지 확인.(설정바꿨는데도 여전히 에러가 난다고요? 알고 있습니다)
어쨋든 이게 문제가 안되다면 다행이겠지만 보통 회사에서는 Nexus 등으로 라이브러리를 별도로 관리하는데, 이 내부망에 존재하는 Repository의 주소는 보통 https가 아닌 http로 관리되는 것 같다. Nexus에 SSL 인증서를 등록하여 HTTPS로 변경하면 모두가 편하겠지만, 이건 현실적으로 당장은 불가능하다. 그래서 관련 에러를 구글링해보면 해결책으로 아래 내용과 같이 설정파일(settings.xml)내 id가 'maven-default-http-blocker'인 부분을 주석 처리하는 방법들이 많이 있는 듯하다.
※ settings.xml 위치: C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.2.0.2\plugins\maven\lib\maven3\conf (버전 등의 이유로 중간 파일명 확인)
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>
분명 이 방법으로 해결이 되는 것은 맞다. 근데 사실 내장 Maven 안 쓰려고 Maven home path 수정했던 것이고 이 또한 몇 번이나 제대로 설정했는지 확인했다... 심지어 ~/.m2/repository 파일 날리고 다시 강제 Maven update까지 했는데도 안된다. 왜 계속 build에 실패하는 거며 왜 위 파일까지 수정해야 하는 거지 싶어서 삽질한 결과, 그것은 바로 IntelliJ IDEA 자체의 캐시(Cache) 때문이라고 한다.🤢
IntelliJ는 프로젝트를 빠르게 열고 코드를 탐색할 수 있도록 프로젝트 파일과 의존성, 빌드 정보를 인덱싱하고 이를 IntelliJ 설정 디렉토리 내에 캐시로 저장한다. 따라서 IntelliJ에서 라이브러리가 제대로 import 되지 않거나 변경사항이 적용되지 않을 때 이 캐시를 지워주면 해결되는 경우가 있다.
IntelliJ IDEA의 캐시를 정리하는 방법은 [File → invalidate Caches...] 경로에서 'Invalidate and Restart' 버튼을 클릭하면 된다.
이러면 어렵게 설정 파일 건드리지 않고 기분 좋지 않게 문제 해결 완료.
별것도 아닌 게 시간을 잡아먹는다.😥
'개발도구' 카테고리의 다른 글
HTTPie 설치 및 Terminal & IntelliJ에서의 사용법 (0) | 2024.08.05 |
---|---|
Adobe(어도비) 프로그램 완전 삭제하기 (3) | 2020.10.20 |