본문 바로가기
안드로이드/Clean Architecture

안드로이드 buildSrc를 활용한 dependency 관리

by 김어찐 2022. 12. 18.
728x90

좌측 탭을 Project 뷰로 설정

 

프로젝트 하단에 buildSrc 폴더 생성

buildSrc 폴더 안에 build.gradle.kts 생성 후 작성한다음 gradle sync 클릭

 

repositories{
    mavenCentral()
}

plugins{
    `kotlin-dsl`
}

 

buildSrc안에 디렉토리 생성해서 src\main\java 경로 생성(현재 내가 이미 생성해서 보이지는 않음)

 

Dependency.kt 파일에 모듈 버전 정의

import Versions.DAGGER_VERSION
import Versions.HILT_COMPILER_VERSION
import Versions.JAVAX_INJECT_VERSION

//import Versions.NAV_VERSION



object Versions {
    const val NAV_VERSION = "2.4.0-alpha10"

    // Dagger Hilt
    const val DAGGER_VERSION = "2.44"
    const val HILT_VERSION = "1.0.0"
    const val HILT_COMPILER_VERSION = "1.0.0"
    const val JAVAX_INJECT_VERSION = "1"
}

//object Kotlin {
//    const val SDK = "org.jetbrains.java:java-stdlib-jdk8:1.5.21"
//}
//
//object AndroidX {
//    const val MATERIAL = "androidx.compose.material:material:1.0.0-rc02"
//    const val CONSTRAINT_LAYOUT = "androidx.constraintlayout:constraintlayout:2.1.0"
//    const val APP_COMPAT = "androidx.appcompat:appcompat:1.3.1"
//    const val LEGACY = "androidx.legacy:legacy-support-v4:1.0.0"
//    const val LIFECYCLE_VIEW_MODEL = "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0"
//    const val LIFECYCLE_LIVEDATA = "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
//    const val ACTIVITY = "androidx.activity:activity-ktx:1.3.1"
//    const val FRAGMENT = "androidx.fragment:fragment-ktx:1.5.2"
//    const val DATASTORE = "androidx.datastore:datastore-preferences:1.0.0"
//}
//
//object KTX {
//    const val CORE = "androidx.core:core-ktx:1.6.0"
//}
//
//object Google {
//    const val MATERIAL = "com.google.android.material:material:1.4.0"
//}
//
//object Test {
//    const val JUNIT = "junit:junit:4.+"
//    const val ANDROID_JUNIT_RUNNER = "AndroidJUnitRunner"
//}
//
//object AndroidTest {
//    const val EXT_JUNIT = "androidx.test.ext:junit:1.1.3"
//    const val TEST_RUNNER = "androidx.test:runner:1.4.0"
//    const val ESPRESSO_CORE = "androidx.test.espresso:espresso-core:3.4.0"
//}
//
object DaggerHilt {
    const val DAGGER_HILT = "com.google.dagger:hilt-android:$DAGGER_VERSION"
    const val DAGGER_HILT_COMPILER = "com.google.dagger:hilt-android-compiler:$DAGGER_VERSION"
    const val DAGGER_HILT_ANDROIDX_COMPILER = "androidx.hilt:hilt-compiler:$HILT_COMPILER_VERSION"
    const val DAGGER_HILT_JAVAX = "javax.inject:javax.inject:$JAVAX_INJECT_VERSION"
}
//
//object Retrofit {
//    const val RETROFIT = "com.squareup.retrofit2:retrofit:2.9.0"
//    const val CONVERTER_GSON = "com.squareup.retrofit2:converter-gson:2.9.0"
//    const val CONVERTER_JAXB = "com.squareup.retrofit2:converter-jaxb:2.9.0"
//}
//
//object OkHttp {
//    const val OKHTTP = "com.squareup.okhttp3:okhttp:4.9.1"
//    const val LOGGING_INTERCEPTOR = "com.squareup.okhttp3:logging-interceptor:4.9.1"
//}
//
//object Coroutines {
//    const val COROUTINES = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2"
//    const val COROUTINES_PLAY_SERVICES = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.1.1"
//}
//
//object NavComponent {
//    const val NAVIGATION_FRAGMENT = "androidx.navigation:navigation-fragment-ktx:$NAV_VERSION"
//    const val NAVIGATION_UI = "androidx.navigation:navigation-ui-ktx:$NAV_VERSION"
//    const val NAVIGATION_DYNAMIC_FEATURES_FRAGMENT = "androidx.navigation:navigation-dynamic-features-fragment:$NAV_VERSION"
//    const val NAVIGATION_TESTING = "androidx.navigation:navigation-testing:$NAV_VERSION"
//    const val NAVIGATION_COMPOSE = "androidx.navigation:navigation-compose:2.4.0-alpha10"
//}
//
//object Firebase{
//    const val FIREBASE_DATABASE_KTX = "com.google.firebase:firebase-database-ktx:20.0.3"
//    const val FIREBASE_FIRESTORE_KTX = "com.google.firebase:firebase-firestore-ktx:24.0.0"
//}
//
//object TestTool {
//    const val JUNIT = "junit:junit:4.+"
//    const val ANDROID_X_JUNIT = "androidx.test.ext:junit:1.1.3"
//    const val ANDROID_X_ESPRESSO = "androidx.test.espresso:espresso-core:3.4.0"
//}
728x90