본문 바로가기

Develop/Android

hilt 의존성 추가

Android Jetpack Compose를 사용한 Empty Activity 프로젝트를 기반으로 하여 hilt 의존성을 추가하는 과정을 기록합니다.
hilt Gradle Setup 이 있지만 Version Catalog 를 사용한 방법은 없음.

프로젝트 환경

  • Android Studio Narwhal 4 Feature Drop | 2025.1.4
  • Kotlin plugin: K2 mode
  • AGP 8.13.0
  • 의존성 관리 Version Catalog Toml

 

라이브러리 추가하기

libs.versions.toml

#추가할 라이브러리의 이름과 버전
[versions]
...
hilt = "2.57.2"
ksp = "2.1.10-1.0.30"


#실제 라이브러리 의존성 정의
#version.ref 는 [versions]에서 추가한 String 사용
#Gradle 직접 주입 방법에서 classpath에 해당
[libraries]
...
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" }


#Gradle 플러그인 정의
#Gradle 직접 주입 방법에서 apply plugin: '...'에 해당
[plugins]
...
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }

 

  [libraries] [plugins]
역할 코드 실행 시 외부 라이브러리(의존성) 추가 Gradle 빌드 시 기능 확장(빌드 로직) 추가
예시 Retrofit, Coroutines, Room 등 KSP, Hilt, Kotlin Serialization 등
적용 위치 dependencies { ... } 블록 안 plugins { ... } 블록 안
Gradle 사용 예 implementation(libs.retrofit) alias(libs.plugins.ksp)

 

build.gradle.kts (project)

//libs.plugins -> libs.version.toml [plugins]
//libs.plugins.xxx -> xxx 는 libs.version.toml 파일에서 정의한 변수명과 동일하며 변수명의 dash는 build.gradle에서는 .(dot)으로 표현
plugins {
	...
	alias(libs.plugins.ksp) apply false
	alias(libs.plugins.hilt) apply false
}

 

build.gradle.kts (app)

plugins {
	...
    alias(libs.plugins.hilt)
    alias(libs.plugins.ksp)
}

android {
	...
}

dependencies {
	...
	implementation(libs.hilt.android)
    ksp(libs.hilt.compiler)
}
반응형