빌드 파일들은 gradle 를 통한 빌드에서 가장 핵심적인 구성요소들을 담고 있는 파일이다. build.gradle (또는 코틀린 사용시 build.gradle.kts) 파일이 빌드 파일이다.
최초에 프로젝트를 3가지 서브 프로젝트(app, data-model, business-logic)로 구성했다. 그러나 아직 각 서브 프로젝트들은 비어있는 상태이다. 각 서브 프로젝트에 빌드 파일을 추가하여 서브 프로젝트들을 의미있게 만들어 줄 수 있다.
서브 프로젝트의 빌드 파일에서 구성해야할 것들은 3가지 이다.
Give meaning to a subproject - apply a plugin
첫번째는 plugins
블록에 설정하는 plugin 들이다. plugin 을 적용함으로써 서브 프로젝트에 구조와 의미를 부여할 수 있다. 이 구조와 의미를 통해서 gradle 은 서브 프로젝트를 어떻게 빌드해야 하는지를 알 수 있다. 예를 들어 gradle 과 함께 delivered 된 'java-library' 플러그인을 적용함으로써 이 서브 프로젝트를 자바 라이브러리 프로젝트로 만든다. 이렇게해서 gradle 과 IDE 가 어디에 소스코드가 있고, 어떻게 컴파일하고, 어떻게 jar file 로 패키징할 지를 알 수 있다.
plugins {
id("java-library")
}
두번째로 때로는 Java 를 컴파일 함에 있어서 디테일한 설정을 추가하고 싶은 경우가 있다. 이런 종류의 설정을 하기 위해서 플러그인은 extension 을 제공한다. 'java-library' 플러그인의 경우에는 java extensions 를 활용할 수 있다.
plugins {
id("java-library")
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(11))
}
세번째로 빌드 파일에 추가할 것은 서브 프로젝트에서 사용할 의존성 명시이다. 의존성은 다른 서브 프로젝트일 수도 있고, 바이너리 저장소에서 다운로드한 의존성 라이브러리일 수도 있다.
dependencies {
implementation(project(":data-model")) // 다른 서브프로젝트를 포함하기
implementation("org.apache.commons:commons-lang3:3.9") // 바이너리 저장소에서 다운로드하기.
//콜론으로 구분된 groupId, artifactId, version 순으로 명시한다.
}
'천복만복 프로그래밍 > Gradle' 카테고리의 다른 글
Understanding Gradle #05 – Lifecycle Tasks (0) | 2023.03.05 |
---|---|
Understanding Gradle #04 – Tasks (0) | 2023.02.12 |
Understanding Gradle #03 – Plugins (0) | 2023.02.05 |
Understanding Gradle #01 – The Settings File (0) | 2023.02.05 |