버전 카탈로그로 빌드 이전

Gradle 버전 카탈로그를 사용하면 확장 가능한 방식으로 종속 항목 및 플러그인을 추가하고 유지할 수 있습니다. Gradle 버전 카탈로그를 사용하면 여러 모듈이 있을 때 종속 항목과 플러그인을 더 쉽게 관리할 수 있습니다. 종속 항목을 업그레이드해야 할 때마다 종속 항목의 이름과 버전을 개별 빌드 파일에 하드코딩하고 각 항목을 업데이트하는 대신, 종속 항목의 중앙 버전 카탈로그를 생성하면 다양한 모듈에서 Android 스튜디오 지원을 활용해 유형 안전 방식으로 이를 참조할 수 있습니다.

이 페이지에서는 Android 앱을 버전 카탈로그로 이전하는 방법에 관한 기본적인 정보를 제공합니다. 자세한 내용은 빌드 종속 항목 추가 및 Gradle 문서를 참고하세요.

버전 카탈로그 파일 만들기

먼저 버전 카탈로그 파일을 만들어야 합니다. 루트 프로젝트의 gradle 폴더에서 libs.versions.toml이라는 파일을 만드세요. Gradle은 기본적으로 libs.versions.toml 파일에서 카탈로그를 검색하므로 이 기본 이름을 사용하는 것이 좋습니다.

libs.versions.toml 파일에 다음 섹션을 추가합니다.

[versions]

[libraries]

[plugins]

섹션은 다음과 같이 사용됩니다.

  • versions 블록에서 종속 항목 및 플러그인 버전을 보유하는 변수를 정의하세요. 후속 블록(librariesplugins 블록)에서 이러한 변수를 사용합니다.
  • libraries 블록에서 종속 항목을 정의하세요.
  • plugins 블록에서 플러그인을 정의하세요.

이전 단계

나열된 순서대로 단계를 실행하는 것이 좋습니다. 빌드에서 빌드 스크립트 및 카탈로그의 종속 항목과 플러그인을 동시에 사용할 수 있으므로, 시간을 들여 종속 항목과 플러그인을 하나씩 개별적으로 이전하세요.

이전 프로세스는 다음과 같습니다.

  1. 새 항목을 카탈로그에 추가합니다.
  2. Android 프로젝트를 동기화합니다.
  3. 이전의 문자열 선언을 카탈로그 유형 안전 접근자로 바꿉니다.

종속 항목 이전

libs.versions.toml 파일의 versionslibraries 섹션에 각 종속 항목의 항목을 추가합니다. 프로젝트를 동기화하고 빌드 파일의 선언을 카탈로그 이름으로 바꿉니다.

다음의 코드 스니펫은 종속 항목을 삭제하기 전의 build.gradle.kts 파일을 보여줍니다.

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.9.0")

}

Groovy

dependencies {
    implementation 'androidx.core:core-ktx:1.9.0'

}

다음의 코드 스니펫은 버전 카탈로그 파일에서 종속 항목을 정의하는 방법을 보여줍니다.

[versions]
ktx = "1.9.0"

[libraries]
androidx-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "ktx" }

카탈로그에서 종속 항목 블록에 권장되는 이름은 케밥 케이스 (예: androidx-ktx)입니다. 이는 빌드 파일에서 더 나은 코드 작성 지원을 제공하기 위한 것입니다.

종속 항목이 필요한 각 모듈의 build.gradle.kts 파일에서 TOML 파일에 정의한 이름으로 종속 항목을 정의합니다.

Kotlin

dependencies {
   implementation(libs.androidx.ktx)

}

Groovy

dependencies {
   implementation libs.androidx.ktx

}

플러그인 이전

libs.versions.toml 파일의 버전과 플러그인 섹션 둘 다에 각 플러그인의 항목을 추가합니다. 프로젝트를 동기화하고 빌드 파일의 plugins{} 블록에서 선언을 카탈로그 이름으로 바꿉니다.

이 코드 스니펫은 플러그인을 삭제하기 전의 build.gradle.kts 파일을 보여줍니다.

Kotlin

// Top-level `build.gradle.kts` file
plugins {
   id("com.android.application") version "7.4.1" apply false

}

// Module-level `build.gradle.kts` file
plugins {
   id("com.android.application")

}

Groovy

// Top-level `build.gradle` file
plugins {
   id 'com.android.application' version '7.4.1' apply false

}

// Module-level `build.gradle` file
plugins {
   id 'com.android.application'

}

다음의 코드 스니펫은 버전 카탈로그 파일에서 플러그인을 정의하는 방법을 보여줍니다.

[versions]
androidGradlePlugin = "7.4.1"

[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }

종속 항목과 마찬가지로 plugins 블록 카탈로그 항목에 권장되는 형식은 케밥 케이스 (예: android-application)입니다. 이를 통해 빌드 파일에서 더 나은 코드 작성 지원을 받을 수 있습니다.

다음 코드는 최상위 및 모듈 수준 build.gradle.kts 파일에서 com.android.application 플러그인을 정의하는 방법을 보여줍니다. 버전 카탈로그 파일의 플러그인에는 alias를 사용하고 규칙 플러그인과 같이 버전 카탈로그에서 가져오지 않은 플러그인에는 id를 사용하세요.

Kotlin

// Top-level build.gradle.kts
plugins {
   alias(libs.plugins.android.application) apply false

}

// module build.gradle.kts
plugins {
   alias(libs.plugins.android.application)

}

Groovy

// Top-level build.gradle
plugins {
   alias libs.plugins.android.application apply false

}

// module build.gradle
plugins {
   alias libs.plugins.android.application

}

자세히 알아보기

버전 카탈로그를 구성하기 위한 다른 옵션에 관해 자세히 알아보려면 다음 리소스를 참고하세요.

알려진 문제

Gradle 버전 카탈로그는 아직 개발 중입니다. 아직 지원되지 않는 항목에 관한 자세한 내용은 알려진 문제 및 제한사항을 참고하세요.