프로젝트 구성
루트 폴더(miri-miri-msa)
- core-module
- user-service-module
- goods-service-module
- order-service-module
그리고 루트 폴더의 settings.gradle 파일과 build.gradle 파일을 다음과 같이 설정한다.
setggins.gradle (root 프로젝트)
rootProject.name = 'miri-miri-msa'
include 'core-module'
include 'user-service-module'
include 'goods-service-module'
include 'order-service-module'
build.gradle (root 프로젝트)
plugins {
id 'java'
}
subprojects {
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
// 공통적으로 사용하는 의존성 정의
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
}
루트 프로젝트의 설정을 마쳤다면 core-module을 제외한 각 모듈의 build.gradle 파일에 다음 내용을 추가한다.
implementation project(':core-module')
문제 발생
그리고 Load Gradle Changes를 수행하면 다음 에러가 발생한다.
지금까지 Gradle 8.7 환경에서 Java21을 잘 사용해왔는데??
이러한 이유로 Java 버전을 21에서 17로 변환하고 수행해 보았으나 다른 에러가 발생하였다.
이유는 다음과 같다.
문제 해결
각 모듈에서 core-module을 찾을 수 없다는 에러가 발생한다.
이유를 살펴보니 각 모듈 안에 별도의 settings.gradle 파일이 위치하는 게 문제였다. 해당 settings.gradle 파일들을 삭제한 뒤 다시 Load Gradle Changes를 수행한다.
에러 지옥이 끝나지 않았다...
그러나 해당 문제는 간단하게 해결할 수 있다. 각 모듈의 build.gradle 파일 마지막에 다음 라인을 추가해주면 된다!!
tasks.register("prepareKotlinBuildScriptModel"){}
이렇게 하면 MSA 환경에서 멀티 모듈 구축이 완료된다!!
+ 추가
이 상태에서 자바 버전을 다시 21로 바꾸면 정상적으로 실행된다!!