Gradle build script
Structure example
시작점: $projectRoot/settings.gralde
- build 의 시작은 프로젝트 루트에 있는 [settings.gradle] 에서 시작된다.
- main-module 이라는 모듈을 기반으로 하는 프로젝트의 settings.gradle 의 script 는 아래와 같다.
- 해당 프로젝트에서 포함하는 module 을 include 로 명시한다.
Main module: $projectRoot/main-module/build.gradle
- target sdk version이나, 빌드툴 버전등에 따라 차이가 있지만, 기본적인 구조는 아래와 같다.
buildscript
repository
- repository 는 default 로 mavenCentral() 을 포함하고 있다.
dependency
- classpath 뒤쪽의 :0.6.+ 등으로 gradle 버전을 지정할 수 있다.
apply-plugin
Android application module
Android library module
android
컴파일 sdk 버전과 빋드툴 버전을 지정한다.
defaultConfig 로 minimum sdk version 과 target sdk version 을 지정한다.
sourceSet: eclipse 에서 생성한 ADT project 의 경우
- 기존 이클립스에서 작업하던 프로젝트의 경우, structure 가 다르기 때문에 인식을 위해 아래의 sourceSets 코드를 추가해주어야 한다.
- 물론 위의 방식처럼 직접하지 않고, 이클립스의 [export > Generate Gradle build files] 를 이용해 build.gradle 및 gradle build 관련 파일을 generate 한다.
- 이때, 주의해야 할 것이, Android studio 와 Eclipse 에서 바라보고 있는 SDK 가 같지 않으면, build tool version 이 달라, export 후에도 Android studio 에 프로젝트를 제대로 불러 올 수 없는 경우가 있다.
- 이런 문제가 발생한 경우, $projectRood/gradle/wrapper/gradle-wrapper.properties 파일을 확인해, distributionUrl 이 예전 버전을 targeting 하고 있는지 확인해 본다.
dependencies
해당 모듈의 디펜던시를 지정한다.
기본적으로, support library v7(예전 버전이면 v4)만을 컴파일 하도록 설정되어있다. 필요에 따라 추가해준다.
compile project
- 다른 module 을 레퍼런스 하도록 설정할 경우 사용한다.
- 예를 들면, android library module 을 레퍼런스할때 사용한다.
- 이때 레퍼런스 하려는 모듈의 위치가 '$projectRoot/libraries/volley' 라면 아래와 같이 작성한다.
- compile project 를 추가한 경우,* '$projectRoot/settings.gralde' 에도 추가*해준다.
- 여기서 중요한점! main-module 이 volley 를 레퍼런스 하고 있다면, volley 는 main-module 보다 먼저 명시 되어야 한다.
compile files
- jar 파일등을 reference 할 때 사용한다.
- directory 경로부터, 파일이름, 확장자 까지 명시해준다.
- files 에서 볼 수 있듯, 여러개의 파일을 연결해서 compile 하도록 설정할 수 있다.
compile fileTree
- 특정 directory 에 있는 특정 확장자 파일 모두(예를 들면 .jar 파일들)를 컴파일 하려고 할 때 사용한다.
compile native library(.so)
- native library 를 compile 하기 위해서 아래의 코드를 추가한다.
- build.gradle 에 아래 코드를 추가한다. 위의 코드에 추가된 'native-libs.jar' 를 만드는 코드이다. (예시중 하나)
Release Build
- terminal, 해당 프로젝트의 root 에서, 아래의 명령을 실행한다. (보통은 android studio 에 있는 terminal 을 이용하면 편하다.)
- buildTypes block 을 추가해 build 설정을 할 수 있다.
- signingConfigs 에 key store 및 alias, password 를 지정해 추가 입력 없이 빌드할 수 있다.
'IT_Programming > Dev Tools' 카테고리의 다른 글
custom_rules.xml (0) | 2014.05.07 |
---|---|
[펌] .gitignore 이 적용되지 않아??? (0) | 2014.04.21 |
ProGuard keep Generic (0) | 2013.07.16 |
[Mercurial] TortoiseHG를 이용한 버전관리 및 conflict 해결법 (0) | 2013.07.04 |
[펌] Mercurial + TortoiseHG 기초 메뉴얼 (0) | 2013.07.04 |