욱'S 노트

Gradle - 소개 본문

Programming/Gradle

Gradle - 소개

devsun 2015. 4. 2. 16:47

소개


Java 기반의 빌드기술에 비약적인 발전을 가져온 빌드 시스템이다.


  • Ant와 같이 매우 유연한 일반적인 목적에 부합한 빌드 툴
  • Maven과 같은 규칙에 의한 빌드 프레임워크로 전환가능하나 구속하지는 않는다.
  • 멀티 프로젝트 빌드에 대한 매우 강력한 지원
  • 매우 강력한 디펜던시 관리 (Apache Ivy 기반)
  • Maven 또는 Ivy repository에 대한 완벽한 지원
  • Remote 리파지토리나 pom.xml, ivy.xml에 필요없는 transitive 디펜던시 관리 지원
  • Ant task과 빌드가 first class citizens 이다.
  • Groovy 빌드 스크립트
  • 빌드를 표현하기 위한 풍부한 도메인 모델

개요

선언적인 빌드와 규칙에 따른 빌드

Gradle의 심장은 Groovy기반의 DSL이다. Gradle는 다음 레벨에서는 제공되는 랭귀지 요소들을 활용하여 선언적인 빌드를 권고한다. 그러한 요소들은 또한 Java, Groovy, OSGi, Web과 Scala 프로젝트를 지원하는 규칙기반의 빌드를 제공한다. 선언적인 언어는 확장할 수 있다.

디펜던시를 위한 언어 기반 프로그래밍

선언적인 언어는 일반적인 작업 그래프 목적상 가장 중요한 곳에 위치한다. 또한 특정한 요구를 층족시기 위해 극도의 유연성을 제공한다.

빌드의 구조화 

Gradle의 유연성과 풍부함은 결국엔 빌드를 위한 공통적인 디자인 원칙을  제공한다.  예를 들어 빌드 로직의 재활용할 수 있는 부분을 빌드에 적용하는 것인 매우 쉽다. 마지막엔 잘 구조화되고, 쉽게 유지보수 할 수 있는 이해하기 쉬운 빌드를 만들 수 있게 될 것이다.

풍부한 API

빌드 수행의 모든 라이프사이클에 많은 후킹을 포함하고 있다는 것에 즐거워질 것이다. Gradle은 설정과 실행 속성을 모니터링하고 커스터마이징 할 수 있도록 제공한다.

Gradle scales

Gradle 매우 잘 확장된다. 하나의 싱글 프로젝트 빌드로부터 거대한 엔터프라이즈의 멀티 프로젝트의 빌드까지 생산성을 최대한 증대시켜줄 것이다. 최신은 빌드 함수와 함께 대형 엔터프라이즈빌드로부터 겪는 고통에서 해방시켜줄 것이다.

멀티 프로젝트 빌드

Gradle은 멀티프로젝트 빌드를 표준으로 제공한다. 프로젝트 디펜던시는 first class citizen이다. 멀티 프로젝트간의 프로젝트 관계를 모델링할 수 있고, Gradle 레이아웃을 따른다. Gradle은 또한 부분빌드도 제공한다. 만약 당신이 싱글 서브프로젝트를 빌드한다면 서브프로젝트에 관련된 모든 서브프로젝트를 Gradle은 관리할 수 있다. 또한 서브 프로젝트가 리빌드 되었을때 연관된 특정 서브프로젝트를 리빌드할 수 있도록 선택할 수 있다. 증가식 빌드와 함께 대형 빌드에서는 많은 시간을 절약해 줄 것이다.

디펜던시 관리를 위한 다양한 방법 제공

다른 팀들이 선호하는 외부 디펜던시를 관리하는 다른 방식이 있다. Gradle은 이러한 경우 편리하게 적용할 수 있다. 리모트 메이븐과 아이비 리파지토리와 함께 transitive 디펜던시 관리 또는 로컬 파일 시스템에 대한 디펜던시 관리를 제공한다.

Gradle는 첫번째 빌드 통합 툴이다.

Ant 작업은 첫번째 대상이다. 흥미롭게도 Ant 프로젝트 또한 first class citizen이다. Gradle은 런타임에 Ant target을 gradle task로 전환하기 위한 Ant 프로젝트를 위한 deep import를 제공한다. Gradle로부터 그것들을 연관지을수도 있다. 또한 build.xml에 gradle task 디펜던시를 정의할 수 잇다.

Gradle은 Maven 또는 Ivy 리파지토리로부터 디펜던시를 조회하고 배포할 수 있다. Gradle은 또한 Maven pom.xml에 대한 converter도 제고한다. Maven 프로젝트의 런타임 임포트도 곧 가능하게 될 것이다.

마이그레이션하기 쉽다.

Gradle은 어떤 구조와도 잘 통합할 수 있다. 그러므로 프로덕션 빌드와 같은 branch에 있는 Gradle 빌드를 발전 시킬 수 있고, 병렬로 개선할 수 있다. 우리는 항상 테스트를 작성하는 것을 권고한다. 

Groovy

Gradle 빌드 스크립트는 XML이 아닌 Groovy로 작성되어진다. 다른 접근법과 달리 단순하지는 않지만 다이나믹 언어의 스크립트 파워를 제공한다. 이러한 사항들은 빌드를 유지보수하는데 매우 힘들게 만들 수도 있다. Gradle의 전체 디자인은 언어를 사용하는데 기반을 둔다. 하지만 Gradle은 다양한 추상화를 제공한다. Gradle는 일반적인 스토리에 대한 표준을 제공하며 또한 어떤 형태로 변경이 가능하다. Gradle는 surgar coating을 제공할 뿐만 아니라, grooy의 모든 API를 사용할 수 있어 groovy를 흥미롭고 생산적인 경험을 느낄 수 있을 것이다.

The Gradle wrapper

Gradle wrapper는 Gradle이 설치되지 않는 머신에서 Gradle를 실행할 수 있게 해준다. Continuous integration 서버에서 사용하는 것이 좋은 예이며, 매우 유용하다. 이것은 또한 오픈 소스 프로젝트에서 빌드하기 위해 barrier low를 유지하기에 매우 유용하다. 랩퍼는 엔터프라이즈 환경에서도 매우 재미있다. 클라이언트 머신에 대한 관리가 필요 없다. 또한 특정한 버젼은 Gradle 사용을 강제하지도 않는다.

Free and Open source

Gradle은 오픈소스 프로젝트이며 ASL 라이선스이다.







'Programming > Gradle' 카테고리의 다른 글

Gradle - Dependency Management Basics  (0) 2015.05.04
Gradle - Java Quick Start  (0) 2015.05.04
Gradle - 빌드 스크립트 기초  (0) 2015.05.04
Gradle - 설치하기  (0) 2015.05.04
Comments