프로젝트 전체에서 사용되는 라이브러리를 중앙에서 관리할 수 있습니다. 이는 라이브러리 버전을 일관성 있게 유지하는 데 도움이 됩니다.
예를 들어 클린 아키텍처 구조로 멀티 모듈을 사용하시면서 라이브러리 버전을 각 모듈별로 선언한다면, 라이브러리 버전이 변경될 때마다, 각 모듈의 라이브러리 버전을 변경해야 하는 번거로움이 발생합니다. Version Catalog를 사용하면 이러한 단점을 개선할 수 있습니다.
Version Catalog 생성
해당 포스팅에서는 프로젝트 생성시 Version Catalog를 생성하여 진행하겠습니다. (작성일 기준 가장 최근 버전인 Koala는 프로젝트 생성시 디폴트로 Version Catalog가 적용됩니다!)
프로젝트를 생성하면 Gradle Scripts에 libs.version.toml를 확인할 수 있습니다.
Version Catalog 사용
[versions]
라이브러리 버전 정보를 정의합니다.
버전에 대한 별칭(alias)을 사용하여 관리할 수 있습니다.
Ex)
core-ktx = "1.9.0"
agp = "8.1.3"
[libraries]
프로젝트에서 사용하는 라이브러리를 정의합니다.
각 라이브러리에 대해 group, name, version.ref 정보를 제공합니다.
Ex) core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" }
는 "androidx.core:core-ktx:1.8.0" 라이브러리를 사용한다는 것을 의미합니다.
[plugins]
프로젝트에서 사용하는 Gradle 플러그인을 정의합니다.
각 플러그인에 대해 id와 version.ref를 제공합니다.
Ex) com-android-application = { id = "com.android.application", version.ref = "agp" }
[bundles]
라이브러리 번들을 정의할 수 있습니다.
번들은 관련된 라이브러리들의 그룹을 의미합니다.
작성 규칙
이름 규칙:
이름은 소문자로 작성해야 합니다.
단어 사이에 하이픈(-)을 사용할 수 있습니다.
언더스코어(_)는 사용할 수 없습니다.
버전 규칙:
버전은 점(.) 구분자를 사용하여 작성해야 합니다.
버전 문자열에는 알파벳, 숫자, 점(.), 하이픈(-)만 사용할 수 있습니다.
버전 문자열 시작 부분에 "v"를 사용할 수 없습니다.
기타 규칙:
[versions]섹션에서 정의한 버전 별칭은[libraries]및[plugins]섹션에서version.ref로 참조해야 합니다.