트러블슈팅
스프링부트 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'
...
}
레퍼런스