본문 바로가기

개발일지

인텔리제이 Gradle dependency 인식 오류

문제 사항

회사에서 기존 프로젝트를 이벤트 기반과 Kotlin 언어로 이전을 하기 위해 새로운 환경을 구성하기로 했다. 멀티 프로젝트 형식이었고, 루트 프로젝트를 구성할 때까지는 문제가 발생하지 않았다. 이후 하위 프로젝트를 몇 개 만들고 Dependency를 추가했는데 인식을 하지 못하는 현상이 발생했다.

 

org.gradle.internal.resolve.ArtifactNotFoundException

 

그래서 gradle에서 다운받은 캐시에 정상적으로 다운로드가 되었는지 확인했다. 윈도우 환경에서 ".gradle/caches" 폴더 내부에서 해당 라이브러리를 찾았다. 라이브러리는 존재했기에 Cache에서 읽어오는 부분에서 문제가 발생했다고 판단을 했다. 

해결 시도하기

인텔리제이에서 제공하는 캐시 삭제 후 재시작 기능을 사용해보기로 했다. "File-Invalidate Caches..." 메뉴를 통해서 실행할 수 있었다. 하지만 재시작 이후에도 라이브러리를 인식하지 못하는 문제는 계속되었다.

 

특단의 조치로 .gradle/caches 내부 파일들을 삭제하고 다시 다운받기로 했다. 그것이 가장 빠른 해결 방법이라는 생각이 들었다. 삭제하고 인텔리제이를 다시 시작해서 gradle를 빌드했다. 빌드 이후 정상적으로 라이브러리가 인식이 되고 완료가 된 것을 확인할 수 있었다.

다른 삽질...

잠깐, Maven Local Repository를 의심했었다. 내 컴퓨터 ".m2/repository"에도 최근 라이브러리들이 있었으며, 인텔리제이에서 찾고 있던 라이브러리의 이전 버전까지 존재했기 때문이다. Remote Repository에서 Local Repository로 다운로드가 정상적으로 안된 건가 싶었다. 그런데 찾아보니 Gradle를 통해서 빌드를 하면 ".m2/repository"를 사용하지 않고 ".gradle/caches"를 사용한다는 것을 알 수 있었다.

 

그렇다고 gradle 환경에서 ".m2/repository"를 사용하지 못하는 것은 아니다. mavenLocal()를 설정해 주면 Local Repository를 사용할 수 있다.

 

repositories {
    mavenLocal()
}

남은 여운...

문제를 올바른 방향으로 풀어나가는 것은 항상 어렵다. 아직 경험이 부족한 나에게는 다른 길은 너무나도 매력적으로 보인다. 나쁘지 않다. 시간이 쫓길 수 있지만, 배우는 것이 늘고 언제 가는 힘이 돼줄 것이다.