이번 포스팅은 gradle이 무엇인지와 어떤 순서로 구동이 되는지 알아보자.
이전 포스팅에서 스프링 부트 개발환경을 구성하면서 빌드 타입을 gradle로 정하였다.
maven은 이미 spring framework에서 무수히 많이 사용했지만 gradle은 너무 낯선 빌드 방식이다.
일단 gradle에 대해서 알아보자.
그루비(Groovy)를 기반으로 한 빌드 도구이다. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다. 딱 여기까지만 봤을때 그러면 Groovy가 무엇이냐고 물어보는 사람들이 있을 것이다.
- Groovy란?
JVM상에서 실행되는 스크립트 언어로써 Java와 유사한 문법 구조를 가지게 된다.
그러면 이제 Groovy가 스크립트 언어라는 것을 알고나면 개발환경을 구성할때 골라야 했던 아래 3가지가 이해가 될 것이다.
gradle로 빌드를 하게되면 xml형식이 아닌 build script를 통해서 파일이 정의가 되는데 해당 스크립트의 문법을 Groovy로 할지 Kotiln으로 할지 정하는 것이였다.
Gradle은 아래 3단계의 순서으로 동작이 된다.
Initialization(초기화) > Configuration(설정) > Execution(실행)
각 과정에 대해 알아보자면
초기화하는 과정에서는 setting.gradle을 읽어서 gradle이 빌드할 대상 프로젝트가 결정된다.
실제 프로젝트의 이름과 rootProject.name이 서로 같아야 한다.
이 과정에서는 프로젝트에 포함된 모든 build script가 실행이 됨과 동시에 라이브러리를 가져오는 작업이 진행된다.
대표적으로 build.gradle이 실행되면서 해당 build script 파일에 설정된 라이브러리들을 읽어오는 것이다.
Configuration단계에서 준비가 된 내용을 바탕으로 실제 Task의 Actions를 실행한다.