Platform/Android

[gradle] gradle 분리(2) (app-dependencies, sdkVersion 관리)

개랭갱깽스타 2020. 10. 19. 14:06

0.

앞 포스팅에서 versions.gradle 로 root - build.gradle 의 dependencies 관리를 해보았습니다.

안보신 분들은 여기로!!

2020/10/19 - [Platform/Android] - [gradle] gradle 분리(1) (프로젝트 설정, dependencies 버전 등)

 

[gradle] gradle 분리(1) (프로젝트 설정 등)

0. kotlin을 익숙하게 쓰기 위해 프로젝트를 하나 생성하였다. 앱 버전 관리, repository 버전 등을 편하게 관리하면 좋을 것 같아, gradle 부터 손보기로 했다. 역시 하나하나 쉬운 건 없었지만(오류 빵�

gaeng-stroy.tistory.com

 

이번 포스팅에서는  [app] - build.gradle 에서 사용하는 dependency 와 sdkVersion(compileSdkVersion, minSdkVersion, targetSdkVersion), buildToolsVersion 에 대한 관리를 하는 방법에 대해 써보겠습니다~~

 

app 단의 dependencies 설정

1. [root] versions.gradle

  • versions 변수로 버전 관리
    • versions 변수에 버전을 몰아놓았기 때문에, 나중에 버전관리 하기가 쉽다.
  • support, test 라는 변수를 새로 만들어서 deps 변수에 추가
  • deps 변수는 ext 변수에 추가되어 있음(모듈 전체에서 사용 가능!)
  • 기존+추가 코드
//versions.gradle
ext.deps = [:]

def versions = [:]
versions.android_gradle_version = "3.5.1"
versions.kotlin_version = "1.3.72"

versions.appcompat = "1.2.0"
versions.core_ktx = "1.3.1"
versions.constraint_layout = "2.0.1"

versions.junit = "4.12"
versions.atsl_junit = "1.1.2"
versions.espresso_core = "3.3.0"
ext.versions = versions

def deps = [:]
deps.kotlin_gradle_plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin_version"
deps.android_gradle_plugin = "com.android.tools.build:gradle:$versions.android_gradle_version"
deps.kotlin_stdlib = "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin_version"

def support = [:]
support.core_ktx = "androidx.core:core-ktx:$versions.core_ktx"
support.app_compat = "androidx.appcompat:appcompat:$versions.appcompat"
support.constraint_layout = "androidx.constraintlayout:constraintlayout:$versions.constraint_layout"
deps.support = support

def test = [:]
test.junit = "junit:junit:$versions.junit"
test.atsl_junit = "androidx.test.ext:junit:$versions.atsl_junit"
test.espresso_core = "androidx.test.espresso:espresso-core:$versions.espresso_core"
deps.test = test

ext.deps = deps

 

2. [app] build.gradle

app - build.gradle

  • AS-IS)
dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.72"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

 

  • NOW)
dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation deps.kotlin_stdlib
    implementation deps.support.core_ktx
    implementation deps.support.app_compat
    implementation deps.support.constraint_layout
    testImplementation deps.test.junit
    androidTestImplementation deps.test.atsl_junit
    androidTestImplementation deps.test.espresso_core
}

 

app 단의 버전 설정(1) - SdkVersion, buildToolVersion 등

1. [root] versions.gradle

  • build_versions 이라는 변수를 추가해서, sdk 버전, build tool 버전 등을 관리
  • ext 변수에 build_versions 를 추가(모듈 전체에서 사용할 수 있게!)
  • 추가 내용
//versions.gradle

def build_versions = [:]
build_versions.min_sdk = 21
build_versions.target_sdk = 30
build_versions.compile_sdk = 30
build_versions.build_tools = "30.0.1"
ext.build_versions = build_versions

 

2. [app] build.gradle

  • AS-IS)
android {
    compileSdkVersion 30
    buildToolsVersion "30.0.1"

    defaultConfig {
        applicationId "com.gaeng0517.kotlinpractice"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    ...(중략)

 

  • NOW)
android {
    compileSdkVersion build_versions.compile_sdk
    buildToolsVersion build_versions.build_tools

    defaultConfig {
        applicationId "com.gaeng0517.kotlinpractice"
        minSdkVersion build_versions.min_sdk
        targetSdkVersion build_versions.target_sdk
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    ... (중략)

 

app 단의 버전 설정(2) - versionCode, versionName 등

>>> 휴... 또 길구나..?  이건... 다음 포스팅에~~ 헥헥

2020/10/19 - [GaengStroy] - [gradle] gradle 분리(3) (app-앱 버전 관리)

 

[gradle] gradle 분리(3) (app-앱 버전 관리)

0. 이전 포스팅들에 이어서 gradle 분리에 대한 포스팅을 써 봐야지! 이전 포스팅은 아래로~ (1) versions.gradle 사용 - 프로젝트 설정, [root] dependencies 관리 2020/10/19 - [Platform/Android] - [gradle] g..

gaeng-stroy.tistory.com

 

반응형

'Platform > Android' 카테고리의 다른 글

[Kotlin]  (0) 2020.10.19
[gradle] gradle 분리(3) (app-앱 버전 관리)  (0) 2020.10.19
[git] .gitignore 설정  (2) 2020.10.19
[gradle] gradle 분리(1) (프로젝트 설정, root-dependencies 관리)  (0) 2020.10.19
[Canvas]  (0) 2020.10.05