Platform/Android

[gradle] gradle 분리(1) (프로젝트 설정, root-dependencies 관리)

개랭갱깽스타 2020. 10. 19. 12:17

0.

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

versions.gradle 이라는 파일을 생성해서 관리를 해 보았다!

 

versions.gradle 생성 및 root 의 dependencies 설정

1. versions.gradle

root - 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
 

gradle [권남]

 

kwonnam.pe.kr

 

2. [root] build.gradle

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-앱 버전 관리)

 

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

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

gaeng-stroy.tistory.com

 

.참고

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

medium.com/@junsanghan/android-versions-gradle%EB%A1%9C-build-gradle-%ED%8E%B8%ED%95%98%EA%B2%8C-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-7b82e426ae8

반응형

'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