* 원조 빌드 툴 make

  - 수작업이나 약간의 스크립트를 작성해야만 가능했던 작업을 Makefile 이라는 통일된 구조로 처리

  - 빌드 개념을 확립

  - https://www.gnu.org/software/make/

  - 최근에는 SCons 라는 C언어 빌드 툴이 등장했다

   

* 자바를 위한 빌드 툴 Ant

  - 자바와 XML 기술을 도입하며 탄생했다

  - 범용성을 높였다 (= 크로스 플랫폼 대응)

  - 복잡한 처리를 하는 경우에 빌드 스크립트가 장황해져 관리가 어렵다

  - 라이브러리 의존관계를 관리하는 구조가 없다

  - https://ant.apache.org/

 

* 빌드 툴의 혁명 Maven

  - Lifecycle 과 POM (Project Object Model) 이라는 새로운 개념을 도입하여 Ant 의 빌드 스크립트 관련 약점을 해결

  - 빌드 스크립트 작성 효율을 높였다 (= 규칙 기반)

  - POM 의 meta 데이터를 이용하여 라이브러리 의존 관계를 자동으로 관리

  - 복잡한 규칙을 이해해야 제대로 사용할 수 있다

  - https://maven.apache.org/

 

* 빌드 툴의 진화

  - 빌드 스크립트 작성 방식

     : 정적 (XML) vs 동적 (스크립트 언어)

     : 처리기반 vs 규칙기반

 

* Gradle

  - 스크립트 언어(Groovy)를 이용한 규칙 기반 빌드 툴

  - 유연성을 높였다 (= 스크립트 언어로 회귀)

  - 빌드 자동화뿐만 아니라 테스트 실행, 결과물 공개, 각종 개발 태스크 자동화, 문서 생성 자동화 등도 가능

  - Groovy DSL (Domain-Specific Language; 특정 영역이나 프로그램에 특화된 독자적인 언어) 을 도입

  - 

 

* Gradle 의 장점

  - 빌드 스크립트 생산성이 높다

  - 빌드 순서를 제어하기 쉽다

  - 멀티 프로젝트에 대응한다

  - 컴포넌트로 만들기 쉽다

  - 별도로 설치할 필요가 없다 (gradle wrapper)

  - 호환성을 최대한 배려한다

 

+ Recent posts