brunch

Gradle Version Catalog

새로운 버전 관리 방법

by 이승현

Overview


Gradle 7.4 (2022.02) 부터 Version Catalog 라는 새로운 버전 관리 방법이 제공된다.




Previous


Multi module 프로젝트에서 dependency 버전을 공유하는 방법은 여러 가지가 있다.


ext block


carbon.png




dependencies.gradle


carbon (1).png



buildSrc


Gradle 이 수행되면, buildSrc 디렉토리가 존재하는지 체크한다.

Gradle 은 자동으로 코드를 컴파일하고 빌드 스크립트의 classpath 에 넣는다.


스크린샷 2022-09-27 오후 4.33.57.png

root 디렉토리에 buildSrc 디렉토리를 생성한다.

src/main/kotlin 디렉토리에 kotlin 파일을 생성하고, dependency 를 설정한다.



carbon (2).png

buildSrc 디렉토리에 build.gradle.kts 파일을 생성하고, kotlin-dsl 을 enable 한다.


carbon (3).png

상수로 선언된 버전이나 라이브러리를 이용한다.




Version Catalog


하나의 파일로 여러 프로젝트 및 모듈의 버전을 관리할 수 있다.


스크린샷 2022-09-27 오후 4.53.29.png

gradle/libs.versions.toml 파일을 생성하고, dependency 를 설정한다.


TOML

Tom Preston-Werner 이 만든 언어
- https://toml.io/en/


toml 파일이 아닌, 직접 추가도 가능하다.

하지만 굳이 쓸 필요는 없어 보인다.


carbon (4).png


carbon (5).png

libs prefix 와 함께 선언한다.




장점


1. IDE 에서 자동 완성을 통해 종속성을 쉽게 추가할 수 있다.


2. 하나의 파일로 모든 모듈의 종속성 버전을 관리할 수 있다.


3. bundle 을 이용할 수 있다.


4. buildSrc 구성 파일에서 버전을 변경하는 경우 Gradle 이 정의한 플러그인을 포함하여 전체 buildSrc 를 재구성한다. (빌드 캐시 무효화)

→ version catalog 의 경우 함수 호출의 형태라 상수 값의 변경 여부는 무관하기 때문에, 단순 버전 변경이 일어난다고 해도 리빌드를 하지 않으니 그만큼 시간 절약에 도움이 될 수 있다.

keyword
작가의 이전글Kotlin Unit, Nothing