Gradle 모듈 간의 종속성을 관리하는 방법은 무엇입니까?

다중 모듈 프로젝트에서 종속성을 수동으로 관리하는 것은 어려울 수 있습니다. 예를 들어 다른 모듈에서 라이브러리 버전을 수정한 후 라이브러리 버전 업데이트를 잊은 경우 프로젝트에 중복 라이브러리가 생깁니다.

Gradle 7.4.1부터 버전 카탈로그는 Gradle 프로젝트(모듈이라고도 함) 간의 종속성을 관리하는 데 권장되는 방법입니다.

버전 카탈로그를 사용하려면 gradle 폴더( libs.versions.toml ) 안에 yourproject/gradle/libs.versions.toml 파일을 추가하기만 하면 됩니다.

.
├── app
│   ├── build.gradle.kts
│   ├── proguard-rules.pro
│   └── src
├── gradle
│   ├── libs.versions.toml
│   └── wrapper
│      ├── gradle-wrapper.jar
│      └── gradle-wrapper.properties
├── build.gradle.kts
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle.kts

libs.versions.toml 파일 내에서 프로젝트의 종속성을 추가할 수 있습니다.

[versions]
compose = "1.2.1"

[libraries]
compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" }
compose-material = { module = "androidx.compose.material:material", version.ref = "compose" }
compose-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" }
compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" }

[bundles]
compose = ["compose-foundation", "compose-material", "compose-tooling", "compose-ui"]


그게 다야! 종속성은 Gradle 프로젝트 전체에서 사용할 수 있습니다.

다음은 프로젝트의 build.gradle.kts 에서 종속성을 사용하는 방법입니다.

dependencies {
    implementation(libs.compose.foundation)
    implementation(libs.compose.material)
    implementation(libs.compose.tooling)
    implementation(libs.compose.ui)
}


Gradle은 대시( - ) 구분 기호를 점( . )으로 변환합니다. compose-foundation에서 compose.foundation로 .

버전 카탈로그 사용의 다른 이점은 다음과 같습니다.
  • 일부 라이브러리의 중앙 집중식 버전입니다.
  • version.ref 를 사용하여 각 라이브러리에 동일한 작성 버전을 할당할 수 있습니다. 따라서 한 곳에서 라이브러리 버전을 업데이트하기만 하면 됩니다.
  • 종속성을 그룹화합니다.

  • 종종 함께 선언해야 하는 많은 종속성이 있습니다. 다음과 같이 bundle 를 사용하여 종속성 선언을 더 짧게 만들 수 있습니다.

    dependencies {
        implementation(libs.bundles.compose)
    }
    


    요약



    버전 카탈로그를 사용하면 종속성을 더 쉽게 관리할 수 있습니다. 이는 중간 규모 또는 대규모 소프트웨어 프로젝트에서 흔히 볼 수 있는 다중 모듈 프로젝트에 유용할 수 있습니다.

    자세한 내용은 the official Gradle documentation로 이동하십시오.

    메모:
  • Gradle은 버전7.0 이후 버전 카탈로그를 도입했지만 여전히 실험적 기능으로 표시되어 있습니다.
  • redcharlie이 찍은 사진
  • 좋은 웹페이지 즐겨찾기