코틀린 그레이들 의존성 오류 (Supertypes of the following classes cannot be resolved)
Gradle
빌드 기반 위에 SpringBoot
프로젝트를 멀티 모듈로 구성하면, 가끔 아래 오류를 만날 수 있습니다.
클래스의 상위 유형을 찾을 수 없어서 의존성 확인이 필요하다는 오류입니다.
Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath
단일 모듈 프로젝트에서는 발생하지 않는 오류입니다.
해당 오류는 멀티 모듈 프로젝트 환경에서 각각의 모듈 간에 종속 관계에 따른 문제입니다.
물론 그 외에도 여러가지 문제로 해당 오류가 발생하기도 합니다.
의존성 주입 누락, 경로 및 버전 이슈, 빌드 구조 이슈, 프로젝트 설정 등
여기서는 멀티 모듈에 따른 오류만 확인해 보겠습니다.
API 프로젝트를 구축한다고 가정합니다.
총 세 개의 모듈을 만들어 보겠습니다.
인터페이스 모듈에 컨트롤러를 두고 도메인 모듈을 참조해서 사용하겠습니다.
배치 모듈은 단독으로 사용합니다.
이때 도메인 모듈에서 특정 라이브러리를 사용하기 위해 의존성을 주입했습니다.
하지만 해당 라이브러리를 호출하면 의존성 오류가 발생합니다.
이유가 뭘까요?
바로 상위 모듈에 해당 라이브러리 의존성이 없기 때문입니다.
상위 모듈에 의존성을 추가하면 바로 해결됩니다.
인터페이스 모듈을 통해 도메인 모듈의 일부 클래스를 사용하면서 발생하는 종속성 문제입니다.