Spring/Error

[Spring] Could not find org.springframework.boot:spring-boot-starter 애러 해결 방법

Dev.Cho 2024. 4. 20. 07:53

애러 원인

스프링 부트를 사용한 앱의 모듈화를 진행하다가 다음과 같은 오류가 발생했다.

* What went wrong:
Execution failed for task ':test-module:compileKotlin'.
> Could not resolve all files for configuration ':test-module:compileClasspath'.
   > Could not find org.springframework.boot:spring-boot-starter-data-mongodb:.

 

원인은 스프링 부트 스타터(spring-boot-starter) 라이브러리를 사용하려면 플러그인이 설정되어 있어야 하는데 설정되지 않아서였다.

 

문제 해결 방법

라이브러리 모듈에서의 해결 방법

문제를 해결하기 위해서는 플러그인 탭에 총 세 가지 플러그인에 대한 의존성이 추가돼야 한다.

  • id("org.springframework.boot")
  • id("io.spring.dependency-management")
  • kotlin("plugin.spring")

 

이 플러그인들을 추가한 build.gradle.kts 파일의 모양은 다음과 같다.

plugins {
    id("org.springframework.boot")
    id("io.spring.dependency-management")
    kotlin("plugin.spring")
    ...
}
...

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-[라이브러리 이름]")
    ...
}

 

전체 모양은 다음과 같다.

그림1. 모듈의 build.gradle.kts

 

 

부모 프로젝트 모듈에서의 해결 방법

참고로 부모 프로젝트 모듈에서 같은 문제가 생긴다면, 해결하기 위해 각각의 플러그인들의 버전을 명시해줘야 한다.

예를 들어 다음과 같이 작성해야 한다.

plugins {
    id("org.springframework.boot") version "3.2.3"
    id("io.spring.dependency-management") version "1.1.4"
    kotlin("plugin.spring") version "1.9.22"
    ...
}

 

라이브러리 모듈에서는 플러그인 버전 명시가 되지 않으면 부모 프로젝트 모듈의 버전을 따르기 때문에 명시를 안해줘도 됐었다.

 

그림2. 부모 프로젝트 모듈에서 버전 명시하기

 

반응형