1. 멀티 프로젝트 빌드 기초
- Gradle은 여러 서브 프로젝트로 구성된 대규모 프로젝트의 빌드를 지원합니다.
- 이는 일반적으로 '멀티-모듈 프로젝트'로 불리며, 하나의 루트 프로젝트와 하나 이상의 서브 프로젝트로 구성됩 니다.
1.1 멀티 프로젝트 구조
- 멀티 프로젝트의 기본 구조는 다음과 같습니다
├── .gradle
│ └── ⋮
├── gradle
│ ├── libs.version.toml
│ └── wrapper
├── gradlew
├── gradlew.bat
├── settings.gradle.kts
├── sub-project-1
│ └── build.gradle.kts
└── sub-project-2
└── build.gradle.kts
- 이 구조에서 주목해야 할 중요한 점들은 다음과 같습니다
.gradle,gradle,gradlew,gradlew.bat,settings.gradle.kts파일이 루트 디렉토리에 위치합니다.settings.gradle.kts파일은 모든 서브 프로젝트를 포함해야 합니다.- 각 서브 프로젝트는 자체
build.gradle.kts파일을 가집니다.
2. 루트 프로젝트 설정
- 루트 프로젝트의
build.gradle.kts는 전체 프로젝트의 공통 설정을 관리합니다.
2.1 플러그인 관리
- 플러그인 설정은
plugins블록에서 이루어집니다:
예시
plugins {
kotlin("jvm") version "1.5.0" apply false
id("org.springframework.boot") version "2.5.0" apply false
}
정보
apply false 옵션의 의미:
- 플러그인을 선언만 하고 루트 프로젝트에는 적용하지 않습니다
- 하위 프로젝트에서 필요할 때 사용할 수 있도록 합니다
- 플러그인 버전을 중앙에서 관리할 수 있게 해줍니다
2.2 전체 프로젝트 공통 설정
allprojects블록은 루트 프로젝트를 포함한 모든 프로젝트에 적용되는 설정을 정의합니다:
예시
allprojects {
group = "com.example"
version = "1.0.0"
repositories {
mavenCentral()
}
}
2.3 서브 프로젝트 공통 설정
subprojects블록은 서브 프로젝트에만 적용되는 설정을 정의합니다
예시
subprojects {
apply(plugin = "org.jetbrains.kotlin.jvm")
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib")
}
}