Gradle이란?
Spring을 개발하다보면 계속 나오는 용어 중 하나가 Gradle, Maven, Groovy, Ant, 등이 있다.
여느때 처럼 잘 정리되어 있는 링크 하나 깔고 가도록 하자.
blog.naver.com/rnd5691/222108089028
Gradle이란?
Gradle은, Apache Ant 및 Apache Maven의 개념을 기반으로 하는 오픈 소스 빌드 자동화 도구이다.
Groovy 기반의 DSL(Domain Specific Language)로 작성되어 있어, 동적인 빌드가 가능하다.
Ant나 Maven은 XML로 작성되어 정적인 빌드만 가능하다고 한다.
Gradle이 주로 하는 일로는, run Tasks가 있는데, jar 파일을 compile 한다든지, run test 를 한다든지, documentation을 만든다든지 하는 일이 있다. 현재 안드로이드 스튜디오의 공식 빌드 시스템이다.
Groovy란?
JVM 언어로 Java와 비슷하지만 좀더 간결하다.
그럼 빌드 관리 도구란 무엇일까?
프로젝트에서 필요한 java 코드와 각종 xml, properties, jar파일 등을 jvm 이나 was 가 인식할 수 있도록 패키징해주는 빌드 과정을 빌드 자동화 도구라고 보면 된다. 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램으로, 애플리케이션을 개발하면서, 일반적으로 개발에 필요한 다양한 외부 라이브러리들을 다운로드하고, 해당 라이브러리들을 번거롭게 다운로드 할 필요 없이 설정을 해 주고, 자동으로 다운로드 해주고 관리해주는 도구이다.
Maven vs Gradle
1) 주로 build.gradle안에 groovy script를 써서 이루어진다.
Maven 에서는 xml을 사용하기 때문에 가독성이 떨어진다.
2) 둘 다 다중 모듈 빌드를 병렬로 실행할 수 있다.
하지만 Gradle의 경우 incremential build를 허용하기 때문에 시간이 Maven 보다 단축된다.
3) Maven의 경우 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용하려면 상속을 받아야 하지만, Gradle은 설정 주입 방식을 제공한다.