Gradle 버전 카탈로그 통합
버전 무엇?
Gradles 버전 카탈로그는 프로젝트 종속성, 플러그인 및 해당 버전을 단일 위치로 중앙 집중화할 수 있는 최신 Gradle 버전의 새로운 기능입니다. (하나 이상을 가질 수는 있지만).
둘 이상의 모듈이 있는 프로젝트로 작업한 경우 모든 모듈에서 모든 종속성을 정렬 상태로 유지하는 데 어려움을 겪을 것입니다. 버전 카탈로그 도입 이전의 솔루션은 build.gradle 파일에서 참조할 수 있는 특수 Gradle buildSrc 폴더 내에 파일을 생성하는 것이었습니다. 이 접근 방식에 크게 잘못된 것은 없지만 Gradle은 버전 카탈로그를 지지하며 특정 조건에서 활용할 수 있는 몇 가지 추가 이점이 있습니다.
예를 들어 큰 프로젝트에서 큰 팀에서 일하고 본질적으로 동일한 응용 프로그램에 대한 모듈인 여러 리포지토리가 있다고 상상해 보십시오. 각 리포지토리에 다른 카탈로그를 갖는 대신 Maven과 같은 리포지토리에 카탈로그를 게시하고 각 리포지토리에서 사용하여 별도의 리포지토리에도 종속성이 정렬되도록 할 수 있습니다. 이에 대해 자세히 알아볼 수 있습니다here.
좋아, 충분히 스필, 어떻게 생겼는지 보자
카탈로그는 toml이라는 구성 언어로 작성되었으며 섹션을 보여주기 위해 아래에 구현을 축소했습니다.
build.gradle
[versions]
compileSdk = "31"
minSdk = "23"
targetSdk = "31"
appVersionCode = "1"
appVersionName = "1.0"
applicationId = "com.x.y"
kotlin = "1.5.31"
android-build-tools-plugin = "7.1.0"
hilt-core = "2.40.5"
hilt-integrations = "1.0.0"
[plugins]
plugin-kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
plugin-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
plugin-android = { id = "com.android.application", version.ref = "android-build-tools-plugin" }
plugin-android-lib = { id = "com.android.library", version.ref = "android-build-tools-plugin" }
[libraries]
hilt-core = { module = "com.google.dagger:hilt-android", version.ref = "hilt-core"}
hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt-core"}
hilt-integrations-work = { module = "androidx.hilt:hilt-work", version.ref = "hilt-integrations"}
hilt-integrations-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "hilt-integrations"}
hilt-integrations-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hilt-compose"}
[bundles]
hilt-deps = [ "hilt-core", "hilt-integrations-work", "hilt-integrations-compose" ]
hilt-compilers = [ "hilt-compiler", "hilt-integrations-compiler" ]
그것은 달라
하지만 높은 수준에서는 매우 간단하며 4개의 섹션이 있습니다.
이 파일을 프로젝트의 최상위 gradle 폴더에 저장하면 사용할 준비가 된 것입니다.
다른 섹션을 참조하는 방법
플러그인의 경우
이전 기사에서 설명한 대로 클래스 경로에 로드할 때 참조할 수 있습니다.
다음과 같습니다.
build.gradle
plugins {
alias(libs.plugins.plugin.kotlin.android) apply false
}
적용 거짓을 기억하십시오. 여기에 적용하고 싶지는 않습니다. 필요한 각 모듈에 각각 적용해야 합니다.
별칭 표기법을 사용하여 모듈 내부에 적용하려면 현재 rc-01에 있는 Gradle 7.4가 필요합니다. 일찍 업그레이드하려는 경우 이를 수행할 수 있습니다.
앱/빌드.gradle
plugins {
alias(libs.plugins.plugin.android)
}
기본값은 적용이므로 적용하지 않을 때 해당 모듈에 플러그인을 적용합니다.
업그레이드할 위치에 있지 않고 Gradle 버전 < 7.4인 경우 다음을 수행할 수 있습니다.
앱/빌드.gradle
plugins {
id "org.jetbrains.kotlin.android"
}
버전용
개별 버전은 build.gradle 파일에서 참조할 수 있으며 다음과 같은 작업을 수행할 수 있습니다.
앱/빌드.gradle
android {
compileSdkVersion libs.versions.compileSdk.get() as Integer
defaultConfig {
applicationId libs.versions.applicationId.get()
minSdkVersion libs.versions.minSdk.get() as Integer
targetSdkVersion libs.versions.targetSdk.get() as Integer
versionName libs.versions.appVersionName.get()
versionCode libs.versions.appVersionCode.get() as Integer
}
...
도서관용
라이브러리의 경우 똑같이 간단합니다.
앱/빌드.gradle
dependencies {
implementation libs.material
}
번들용
번들은 다음과 같이 구현할 수 있는 번들과 유사하게 관련 종속성을 그룹화하고 줄 공간을 절약하는 좋은 방법을 제공합니다.
앱/빌드.gradle
dependencies {
implementation libs.bundles.hilt.deps
kapt libs.bundles.hilt.compilers
}
지느러미
다음으로 미리 컴파일된 Gradle 스크립트 플러그인을 사용하여 Gradle 파일을 정리하는 방법을 살펴보겠습니다.
Reference
이 문제에 관하여(Gradle 버전 카탈로그 통합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/charlietap/gradle-versions-catalog-integration-27l0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)