0.
kotlin을 익숙하게 쓰기 위해 프로젝트를 하나 생성하였다. 앱 버전 관리, repository 버전 등을 편하게 관리하면 좋을 것 같아, gradle 부터 손보기로 했다. 역시 하나하나 쉬운 건 없었지만 (오류 빵빵 빨간줄 빵빵)!!
versions.gradle 이라는 파일을 생성해서 관리를 해 보았다!
versions.gradle 생성 및 root 의 dependencies 설정
1. versions.gradle
- root (프로젝트)단에 versions.gradle 파일을 만든다.
- android gradle plugin 과 kotlin gradle plugin 을 먼저 적용해보았다.
//versions.gradle
ext.deps = [:]
def versions = [:]
versions.android_gradle_version = "3.5.1"
versions.kotlin_version = "1.3.72"
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"
ext.deps = deps
- ext 에 versions, deps 라는 변수를 추가하여 모듈단에 공유해서 사용.
- ext, def, 뭐...뭐지?
더보기
- ext: gradle 에서 지원하는 변수
- 이 변수를 이용하여 추가 속성을 정의할 수 있다.
- 추가 속성은 모든 모듈에 공유가 가능하다.
- !!)
ext.versions 와 ext.deps 는 해당 변수에 모든 값을 추가한 후 진행해야 한다. - 변수선언을 진행한 다음 진행해야 한다.(일반적인 프로그래밍과 마찬가지로!)
- if not) 아래 오류가 난다.
- def: gradle 에서 지원하는 지역변수
- 해당 스크립트에서만 사용할 수 있다.
- 그 외 자세한 gradle 에 대한 내용은 아래를.....(나중에 공부하쟈!)
- kwonnam.pe.kr/wiki/gradle
2. [root] build.gradle
- versions.gradle 을 사용할 수 있도록, root (프로젝트)단의 build.gradle 에 아래 내용을 추가한다.
buildscript {
apply from: 'versions.gradle'
...(중략)
- 추가하게 되면, versions.gradle 에 있는 변수들을 사용할 수 있다.
- AS-IS)
dependencies {
classpath "com.android.tools.build:gradle:4.0.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"
}
- NOW)
dependencies {
classpath deps.android_gradle_plugin
classpath deps.kotlin_gradle_plugin
}
다음 포스팅에서는 [app] - build.gradle 에서 사용하는 dependency 와 compileSdkVersion, minSdkVersion, targetSdkVersion 등에 대한 버전관리를 하는 방법에 대해서 써 보겠습니다~~~
2020/10/19 - [Platform/Android] - [gradle] gradle 분리(2) (app-dependencies, sdkVersion 관리)
2020/10/19 - [GaengStroy] - [gradle] gradle 분리(3) (app-앱 버전 관리)
.참고
developer.android.com/studio/build/gradle-tips?hl=en
medium.com/@jsuch2362/gradle-dependency-%EB%B6%84%EB%A6%AC%ED%95%98%EA%B8%B0-eb0c7c794b9c
반응형
'Platform > Android' 카테고리의 다른 글
[gradle] gradle 분리(2) (app-dependencies, sdkVersion 관리) (0) | 2020.10.19 |
---|---|
[git] .gitignore 설정 (2) | 2020.10.19 |
[Canvas] (0) | 2020.10.05 |
[UI] Activity View 정보 구하기 (0) | 2020.09.24 |
[Architecture] Clean Architecture (0) | 2020.09.24 |