멀티모듈 Gradle 빌드 관리 가이드
Kotlin DSL 기반 멀티모듈 Gradle 프로젝트의 빌드 설정을 관리한다.
build.gradle.kts (모듈별):
dependencies {
implementation(project(":domain"))
implementation(project(":protobuf"))
// Spring Boot
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
// gRPC
implementation("net.devh:grpc-spring-boot-starter")
// Test
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.mockito.kotlin:mockito-kotlin")
}
# settings.gradle.kts
include("graphql", "user", "call", "chat", "feed",
"notification", "product", "tracking", "adreward",
"scheduler", "grouptalk", "domain", "protobuf")
| 모듈 | 의존 대상 |
|---|---|
| graphql | domain, protobuf |
| user, call, chat, ... | domain, protobuf |
| domain | (독립) |
| protobuf | (독립) |
# 전체 빌드
./gradlew clean build -x test
# 특정 모듈
./gradlew :user:build -x test
# 컴파일만
./gradlew :user:compileKotlin
# 의존성 트리
./gradlew :user:dependencies
# Proto 재생성
./gradlew :protobuf:clean :protobuf:build
gradle.properties:
applicationVersion=0.9.44
kotlinVersion=1.8.22
springBootVersion=3.1.4
settings.gradle.kts에 include("new-module") 추가new-module/build.gradle.kts 생성src/main/kotlin/com/maum/backend/ 패키지 구조 생성application.yml 환경별 생성 (local, stg, prod)./gradlew :new-module:build 확인protobuf 모듈 변경 시 반드시 ./gradlew :protobuf:build 먼저 실행gradle.properties에서 중앙 관리