Gradle 구조에 관한 내용.

 


전체 Gradle Scripts

 

 

 


Settings.gradle

 

안드로이드 프로젝트는 멀티 프로젝트 구조, settings.gradle 파일에 포함하는 하위 프로젝트(모듈)가 담겨져 있다.

settings.gradle

settings.gradle 파일에 기본으로 생성되는 값으로, include 문장은 app 모듈을 포함한다.

 

안드로이드 라이브러리 프로젝트를 추가한다면  settings.gradle에 추가해야한다.

 


프로젝트 Build.gradle

최상위 build.gradle파일(프로젝트 build.gradle)

 프로젝트 build.gradle 파일의 buildscript 블록은 안드로이드 플러그인을 어디서 다운로드할지 지정한다.

프로젝트 build.gradle 파일의 buildscript 블록은 안드로이드 플러그인 버전을 지정한다.

 


App 모듈 Build.gradle

app모듈의 build.gradle

apply 문장은 안드로이드 플러그인 지정. 

 

모듈 build.gradle 파일의 android  블록은 프로젝트의 세부 내용을 정의한다.

 

android블록의 compileSdk 항목은 컴파일 SDK 버전

android블록의 defaultConfig 블록에 몇가지 속성을 지정할 수 있다.

 

applicationId

애플리케이션의 패키지 이름을 정의. 구글 플레이 스토어에서 유일한 이름으로 구별되어야 하고, 한번 마켓에 올라가면 이 값은 변경되어서는 안됨. 값을 변경하게 되면 전혀 다른 애플리케이션이 되어 기존 사용자가 동일한 이름으로 최선 버전을 검색할 수 없음. gradle로 넘어가기 전에는 AndroidManifest.xml 파일의 package 속셍에 정의했지만, 이제 두 값은 서로 달라도 된다. 우선 순위는 AndroidId가 더 높다.

 

minSdk

지원하는 최소 SDK 버전. SDK가 이 값보다 낮은 기기에서는 해당 애플리케이션을 검색할 수 없다. gradle로 넘어가기 전에는 AndroidManifest.xml 파일에 uses-sdk 태그 속성으로 정의 했지만, 이러한 방식은 이제 지원하지 않으며 gradle 의 빌드 속성값으로 대체 되어 있다.

 

targetSdk

애플리케이션에서 의도하는 목적 SDK 버전. Android Studio에서는 이 값이 Android 최신 버전보다 낮으면 경고를 표시하며, 원하는 버전을 지정하면 된다.

 

versionCode

애플리케이션의 버전을 나타내는 정수 값. 업그레이드의 기준으로 사용한다.

 

VersionName

사용자에게 배포되는 애플리케이션 버전을 나타내는 문자열. 보통 <Major>.<Minor>.<Version> 형식이다.

 

ComplieOptions 블록은 이 애플리케이션이 JDK 1.8을 사용하고 있음을 알려준다.

 

 

Android Studio의 Project Structure 에서 실행하면 다음과 같이 속성값이 보인다.

모듈 build.gradle의 dependencies 블록에 라이브러리의 그룹, 이름, 버전을 지정해서 안드로이드 애플리케이션에 외부 라이브러리를 추가할 수 있다.

 

외부 라이브러리 명시할 때 configuration도 함께 입력.

compile, runtime, testCompile 등이 있다.

 

메이븐 저장소에 있는 라이브러리 그룹, 이름, 버전을 명시할 때 사용하는 문법

configuration명 '[그룹]:[이름]:[버전]'

예시

testCompile 'junit:junit:4.12'

 

메이븐 저장소가 아니라 로컬 파일 시스템에 있는 파일을 참조하려면 file이나 fileTree 문법을 사용한다

dependencies {

compile files('libs/a.jar', 'libs/b.jar')

compile fileTree(dir: 'libs', include: '*.jar')

}

 

 

저장소 설정

모듈 build.gradle에 있는 repositories 블록에 외부 라이브버리 의존성을 확인하는 저장소를 설정할 수 있다.

 

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

Project 객체의 속성  (0) 2024.03.13
Gradle User Manual  (0) 2024.03.13
Android Gradle plugin API reference  (0) 2024.03.13
그레이들 테스크 실행  (0) 2024.03.13
Gradle  (0) 2024.03.12

+ Recent posts