Gradle-개요
"Gradle is an open source build automation system"
Ant와 Maven은 JAVA 시장에서 상당한 성공을 거두었습니다. Ant는 2000 년에 출시 된 최초의 빌드 도구이며 절차 적 프로그래밍 아이디어를 기반으로 개발되었습니다. 나중에 Apache-IVY의 도움으로 네트워크를 통해 플러그인 및 종속성 관리를 허용하는 기능으로 개선되었습니다. 주요 단점은 빌드 스크립트를 작성하기위한 형식으로서의 XML이며, 계층 적 구조는 절차 적 프로그래밍에 적합하지 않으며 XML은 관리 할 수 없을 정도로 커지는 경향이 있습니다.
Maven은 2004 년에 도입되었습니다. ANT보다 훨씬 개선되었습니다. 구조를 변경하고 빌드 스펙 작성을 위해 계속 XML을 사용합니다. Maven은 규칙에 의존하고 네트워크를 통해 종속성을 다운로드 할 수 있습니다. Maven의 주요 이점은 수명주기입니다. 여러 프로젝트에 대해 동일한 라이프 사이클을 지속적으로 따르면서. 이것은 유연성의 대가를 초래합니다. Maven은 또한 종속성 관리에서 몇 가지 문제에 직면합니다. 동일한 라이브러리 버전 간의 충돌을 잘 처리하지 못하며 복잡한 사용자 정의 빌드 스크립트는 실제로 ANT보다 maven에서 작성하기가 더 어렵습니다.
마침내 Gradle은 2012 년에 등장했습니다. Gradle은 두 도구 모두에서 몇 가지 효율적인 기능을 제공합니다.
Gradle의 기능
다음은 Gradle이 제공하는 기능 목록입니다.
Declarative builds and build-by-convention− Gradle은 Groovy 언어를 기반으로 별도의 DSL (Domain Specific Language)로 사용할 수 있습니다. Gradle은 선언적 언어 요소를 제공합니다. 이러한 요소는 또한 Java, Groovy, OSGI, Web 및 Scala에 대한 빌드 별 지원을 제공합니다.
Language for dependency based programming − 선언적 언어는 범용 작업 그래프의 맨 위에 있으며 빌드에서 완전히 활용할 수 있습니다.
Structure your build− Gradle을 사용하면 마침내 빌드에 공통 디자인 원칙을 적용 할 수 있습니다. 빌드를위한 완벽한 구조를 제공하므로 잘 구조화되고 유지 관리가 용이하며 이해하기 쉬운 빌드를 설계 할 수 있습니다.
Deep API −이 API를 사용하면 구성 및 실행 동작을 핵심으로 모니터링하고 사용자 지정할 수 있습니다.
Gradle scales − Gradle은 간단한 단일 프로젝트 빌드에서 대규모 엔터프라이즈 다중 프로젝트 빌드에 이르기까지 생산성을 쉽게 높일 수 있습니다.
Multi-project builds− Gradle은 다중 프로젝트 빌드를 지원하며 부분 빌드를 지원합니다. 하위 프로젝트를 빌드하면 Gradle이 종속 된 모든 하위 프로젝트를 빌드합니다.
Different ways to manage your builds − Gradle은 종속성 관리를위한 다양한 전략을 지원합니다.
Gradle is the first build integration tool− Gradle은 종속성 게시 및 검색을위한 ANT 작업, Maven 및 lvy 저장소 인프라를 완벽하게 지원합니다. Gradle은 Maven pom.xml을 Gradle 스크립트로 변환하기위한 변환기도 제공합니다.
Ease of migration− Gradle은 모든 구조에 쉽게 적응할 수 있습니다. 따라서 라이브 스크립트를 빌드 할 수있는 동일한 브랜치에서 항상 Gradle 빌드를 개발할 수 있습니다.
Gradle Wrapper− Gradle Wrapper를 사용하면 Gradle이 설치되지 않은 컴퓨터에서 Gradle 빌드를 실행할 수 있습니다. 이는 서버의 지속적인 통합에 유용합니다.
Free open source − Gradle은 오픈 소스 프로젝트이며 Apache 소프트웨어 라이선스 (ASL)에 따라 라이선스가 부여됩니다.
Groovy− Gradle의 빌드 스크립트는 Groovy로 작성되었습니다. Gradle의 전체 디자인은 엄격한 프레임 워크가 아닌 언어로 사용되도록 지향됩니다. 그리고 Groovy를 사용하면 일부 추상화를 사용하여 자신 만의 스크립트를 작성할 수 있습니다. 전체 Gradle API는 Groovy 언어로 완전히 설계되었습니다.
왜 Groovy인가?
완전한 Gradle API는 Groovy 언어를 사용하여 설계되었습니다. 이것은 XML보다 내부 DSL의 장점입니다. Gradle은 핵심적인 범용 빌드 도구입니다. 주요 초점은 Java 프로젝트입니다. 이러한 프로젝트에서 팀 구성원은 Java에 매우 익숙 할 것이며 빌드가 모든 팀 구성원에게 가능한 한 투명해야합니다.
Python, Groovy 또는 Ruby와 같은 언어는 빌드 프레임 워크에 더 적합합니다. Groovy가 선택된 이유는 Java를 사용하는 사람들에게 지금까지 최고의 투명성을 제공하기 때문입니다. Groovy의 기본 구문은 Java와 동일합니다. Groovy는 더 많은 것을 제공합니다.