[Gradle]그래들 알아보기 6 - Dependency Management Basics
SW개발/Spring

[Gradle]그래들 알아보기 6 - Dependency Management Basics

https://docs.gradle.org/current/userguide/dependency_management_basics.html

 

Dependency Management Basics

To add a dependency to your project, specify a dependency in the dependencies block of your build.gradle(.kts) file. The following build.gradle.kts file adds a plugin and two dependencies to the project using the version catalog above: plugins { alias(libs

docs.gradle.org

 

Dependency Management Basics

그래들은 의존성 관리를 빌트인으로 제공합니다.

 

 

의존성 관리는 프로젝트에서 요구되는 외부 리소스를 선언하고 해결하기 위한 자동화된 기술입니다.

그래들 빌드 스크립트는 외부 의존성이 요구되는 경우에 프로젝트를 빌드하는 프로세스를 정의합니다. 의존성은 프로젝트 빌드를 지원하는 JAR, 플러그인, 라이브러리 또는 소스 코드와 같은 것을 나타냅니다.

 

Version Catalog

버전 카탈로그는 의존성 선언을 중앙 집중화하는 방법이고, libs.versions.toml 파일에 선언합니다.

카탈로그를 사용하면 서브 프로젝트간에 버전이나 의존성을 쉽게 공유할 수 있도록 만듭니다. 또한, 대형 프로젝트에서 팀의 라이브러리나 플러그인의 버전을 강제화 할 수 있습니다.

 

버전 카탈로그는 아래 4개의 섹션을 포함합니다.

  1. [versions] 플러그인이나 라이브러리가 참조할 버전명을 정의합니다.
  2. [libraries] 빌드 파일에서 사용할 라이브러리를 정의합니다.
  3. [bundles] 의존성 세트를 정의합니다.
  4. [plugins] 플러그인을 정의합니다.
[versions]
androidGradlePlugin = "7.4.1"
mockito = "2.16.0"

[libraries]
googleMaterial = { group = "com.google.android.material", name = "material", version = "1.1.0-alpha05" }
mockitoCore = { module = "org.mockito:mockito-core", version.ref = "mockito" }

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

이 파일은 gradle 디렉토리에 위치해야 IDE나 Gradle이 자동으로 사용할 수 있습니다. 버전 카탈로그는 소스 컨트롤로 체크해야 합니다. (gradle/libs.versions.toml)

 

Declaring Your Dependencies

프로젝트에 의존성을 추가하려면, build.gradle 파일의 dependencies 블록에 의존성을 명시하면 됩니다.

 

아래는 build.gradle.kts 파일에서 버전 카탈로그를 사용해서 프로젝트에 2개의 의존성과 플러그인을 추가한 것입니다.

plugins {
   alias(libs.plugins.androidApplication)  // 1
}

dependencies {
    // Dependency on a remote binary to compile and run the code
    implementation(libs.googleMaterial)    // 2

    // Dependency on a remote binary to compile and run the test code
    testImplementation(libs.mockitoCore)   // 3
}
  1. 프로젝트에 Android Gradle 플러그인을 적용했고, 안드로이드 앱을 빌드할 때 몇몇 추가 기능을 제공합니다.
  2. 프로젝트에 Material 의존성을 추가합니다.Material Design은 안드로이드 앱에서 유저 인터페이스를 만드는 컴포넌트를 제공합니다. 이 라이브러리는 프로젝트에서 Kotlin 소스 코드가 컴파일되거나 실행될 때 사용됩니다.
  3. 프로젝트에 Mockito 의존성을 추가합니다. Mockito는 자바 코드를 테스팅 하기 위한 프레임워크 입니다. 이 라이브러리는 프로젝트의 test 소스 코드가 컴파일되거나 실행될 때 사용됩니다.

 

그래들의 의존성은 설정 별로 그룹화 됩니다.

  • material 라이브러리는 implementation 설정에 추가되었고, 이는 프로덕션 코드를 컴파일하거나 실행하는데 사용됩니다.
  • mockto-core 라이브러리는 testimplementation 설정에 추가되었고, 이는 테스트 코드를 컴파일하거나 실행하는데 사용됩니다.

 

Viewing Project Dependencies

프로젝트의 의존성을 확인하고 싶다면 ./gradlew :app:dependencis 명령어를 입력합니다.

$ ./gradlew :app:dependencies

> Task :app:dependencies

------------------------------------------------------------
Project ':app'
------------------------------------------------------------

implementation - Implementation only dependencies for source set 'main'. (n)
\--- com.google.android.material:material:1.1.0-alpha05 (n)

testImplementation - Implementation only dependencies for source set 'test'. (n)
\--- org.mockito:mockito-core:2.16.0 (n)

...

 

728x90