트러블슈팅

스프링부트 Gradle 멀티모듈 프로젝트에서 dependency를 보지 못 하는 경우 해결 방법

기억용블로그 2022. 10. 31. 13:35
728x90

상황

Gradle로 멀티모듈 프로젝트를 구성하려고 할 때 하위 프로젝트 (e.g. batch, api server)에서 상위 프로젝트 (e.g. core)의 dependency(e.g. lombok, jpa)를 보지 못 하고 컴파일이 되지 않는 문제가 발생함.

 

기존 코드

project(':batch-server') {

    bootJar.enabled = true
    jar.enabled = false

    dependencies {
        compile project(':core')
    }
}

 

compile은 Gradle 7부터 완전히 제거되었으므로 compileOnly, api 등과 같은 다른 키워드로 바꿔서 해봐도 컴파일이 되지 않음.

 

해결한 코드

//Before
compile project(:'core') 
//or
compileOnly project(:'core') 
//or
api project(:'core')

//After
implementation project(path: ':core', configuration: 'default')

 

혹시 위의 코드로도 해결이 되지 않는 경우에는 아래의 코드를 추가해보는 방법도 추천한다.

 

subprojects {
    apply plugin: 'java-library'
    ...
}

 

레퍼런스

https://stackoverflow.com/questions/47738788/gradle-multi-module-project-cannot-find-module-dependencies

 

Gradle multi module project cannot find module dependencies

I'm trying to build simple java project in Intellij that has many modules. I've got following project structure: project_structure my root project build.gradle: group 'com.wat' version '1.0-SNAP...

stackoverflow.com