문제 사항
회사에서 기존 프로젝트를 이벤트 기반과 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()
}
남은 여운...
문제를 올바른 방향으로 풀어나가는 것은 항상 어렵다. 아직 경험이 부족한 나에게는 다른 길은 너무나도 매력적으로 보인다. 나쁘지 않다. 시간이 쫓길 수 있지만, 배우는 것이 늘고 언제 가는 힘이 돼줄 것이다.
'개발일지' 카테고리의 다른 글
Logback에서 Log Level를 처리하는 과정 (1) | 2024.09.09 |
---|