Gradle이란?
Gradle은 그루비(Groovy)를 기반으로 한 빌드 도구이다. Ant와 Maven과 같은 이전 세대 빌드 도구들의 단점을 보완하고 장점을 취합하여 만든 오픈소스 빌드 도구이다.
Ant
- XML 기반으로 빌드 스크립트를 작성한다.
- 간단하고 사용하기 쉽다.
- 유연하지만 프로젝트가 커지는 경우 스크립트 관리나 빌드 과정이 복잡해진다.
- 생명주기를 갖지 않아 각각의 결과물에 대한 의존관계 등을 정의해야 한다.
Maven
- XML 기반으로 작성한다.
- 생명주기와 프로젝트 객체 모델이란 개념을 사용한다.
- pom.xml에 필요한 라이브러리를 작성하면 자동으로 해당 프로젝트로 불러와 편리하다.
- 학습 장벽이 높다.
- 라이브러리가 서로 의존하는 경우 복잡해진다.
Gradle
- 의존성 관리를 위한 다양한 방법을 제공한다.
- 빌드 스크립트를 XML 언어가 아닌 JVM에 동작하는 스크립트 언어 '그루비(Groovy) 기반의 DSL(Domain Specific Language)를 사용한다.
- 그루비(Groovy)는 자바 문법과 유사하여 쉽게 배울 수 있으며 Gradle Wrapper를 이용하면 Gradle이 설치되지 않은 시스템에서도 프로젝트를 빌드할 수 있다.
- Maven의 pom.xml을 Gradle 용으로 변환 가능하며 Maven의 중앙 저장소도 지원하기 때문에 라이브러리를 모두 그대로 가져다 사용 가능하다.
Gradle 기본 구조
디렉토리 / 파일 | 설명 |
/.gradle /gradle |
gradle 버전별 엔진 및 설정 파일 |
/.idea | 에디터 관련 파일들 |
/gradlew | Unix용 실행 스크립트 |
/gradlew.bat | Windows용 실행 스크립트 |
/settings.gradle | 빌드할 프로젝트 정보 설정 |
wrapper/gradle-wrapper.jar | Wrapper파일 |
wrapper/gradle-wrapper.properties | Gradle Wrapper 설정 파일 |
/build.gradle | 프로젝트 빌드에 대한 모든 기능 정의 |
Gradle Build Lifecycle
- 초기화 (Initialization) : 빌드 대상 프로젝트를 결정하고 각각에 대한 프로젝트 객체를 생성. settings.gradle 파일에서 프로젝트를 구성한다. (멀티프로젝트, 싱글프로젝트 구분)
- 구성 (Configuration) : 빌드 대상이 되는 모든 프로젝트의 빌드 스크립트를 실행한다. (프로젝트 객체 구성)
- 실행 (Execution) : 구성 단계에서 생성하고 설정된 프로젝트의 태스크 중에 실행 대상 결정. gradle 명령행에서 지정한 태스크 이름 인자와 현재 디렉토리를 기반으로 태스크를 결정하여 선택된 태스크들을 실행.
Build 설정파일
- build.gradle : 빌드에 대한 모든 기능을 정의
- settings.gradle : 프로젝트 구성을 설정 (싱글프로젝트의 경우 생략이 가능하다)(Gradle은 멀티프로젝트를 구성하여 프로젝트간의 의존성 및 서브프로젝트를 구성할 수 있다)
'개념' 카테고리의 다른 글
RESTFUL(restful)(RESTful) API가 무엇일까? (0) | 2022.06.17 |
---|---|
Oracle(오라클)과 MySQL 문법 비교 (0) | 2022.06.17 |
AndroidManifest.xml(안드로이드매니페스트)이란? (0) | 2022.06.17 |
Proguard(프로가드)란? (0) | 2022.06.17 |
CDN이란? (0) | 2022.06.17 |