본문 바로가기

Build Gradle

[Build Gradle] 종속성 관리

안녕하세요. 메로나입니다.

 

오늘은 종속성 관리에 관해 공부하겠습니다.

 

종속성 관리란?

프로젝트에 필요한 외부 리소스를 선언하고 해결하기 위한 자동화 기술입니다.

 

!!! 버전 카탈로그 !!!
  • 종속성 선언을 파일에서 중앙 집중화하는 방법을 제공
  • 파일 이름: libs.versions.toml
  • 라이브러리와 플러그인의 버전을 적용할 수 있도록 해줍니다.
버전 카탈로그는 무슨 내용들이 들어 있을까?
  • 버전: 플러그인과 라이브러리가 참조할 버전 번호 선언
  • 라이브러리: 빌드 파일에서 사용되는 라이브러리를 정의
  • 번들: 종속성 집합을 정의
  • 플러그인: 플러그인을 정의(특화된 여러 기능을 추가)

 

번들 예시
[versions]
kotlin = "1.8.10"
androidxCore = "1.10.1"
appCompat = "1.6.1"
material = "1.9.0"

[libraries]
androidx-core = { module = "androidx.core:core-ktx", version.ref = "androidxCore" }
appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appCompat" }
material = { module = "com.google.android.material:material", version.ref = "material" }

[bundles]
androidx = ["androidx-core", "appcompat"]

 

종속성 선언

build.gradle.kts 파일 안에 종속성이 추가되어 있습니다.

build.gradle.kts

 

1. plugins

  • Android 앱을 빌드하는 데 특화된 여러 기능을 추가합니다.
  • libs.plugins.androidApplication: 버전 카탈로그 파일에서 plugins 항목에 androidApplication의 의존 정보를 들고 온다는 의미입니다.
  • Gradle Task의 집합
    • 작업들을 일일이 Gradle 파일에 정의해놓으면 매우 비효율적이므로 이를 미리 안드로이드 개발사인 구글이나 IDE 개발사인 JetBrains에서 미리 만들어 Plugin 형태로 묶어놓았습니다.

자주 사용하는 plugins

 

2. dependencies

  • 외부 라이브러리를 선언하는 곳입니다.
  • 버전 카탈로그에서 필요한 외부라이브러리를 가져와서 선언할 수 있습니다.

3. ./gradlew :app:dependencies

  • app 모듈에서 dependencies의 정보를 터미널로 볼 수 있습니다.

 

다음 블로그는 plugin을 만들어서 작성해 보겠습니다.

 

참고문헌

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

https://velog.io/@hjtn/Android-Gradle-Version-Catalog-%EC%A0%95%EB%A6%AC

 

[Android] Gradle Version Catalog 정리

Android App 개발 프로젝트를 하면서 멀티 모듈을 사용할 때, 버전을 관리하는 방법

velog.io

https://kotlinworld.com/323

 

[Gradle] Plugin이란 무엇인가? 플러그인 이해하고 Custom Plugin 만들기

Gradle Plugin이란? Plugin이란 Gradle Task의 집합이다. Gradle Task는 어플리케이션 빌드부터 테스트까지 다양한 작업을 수행하는 작업 단위를 뜻한다. *만약 Task에 대한 이해가 부족하다면 다음글을 참조

kotlinworld.com