빌드도구는 소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램이다.
빌드는 코드를 사용 하거나 실행 가능한 형태로 컴파일링
, 링킹
, 패키징
하는것을 포함한다.
기본적으로 빌드 자동화는 아래와 같은 정형화된 다양한 작업을 스크립팅하거나 자동화 하는 행위이다
Maven은 Java용 프로젝트 관리도구로 Apache의 Ant
대안으로 만들어졌다.
빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리 종속성 관계를 pom.xml
파일에 명시한다.
Maven은 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한다음, 로컬시스템의 캐시에 모두 저장한다.
Gradle
은 Groovy를 이용한 빌드 자동화 시스템으로 현재 안드로이드
앱을 만드는데 필요한 안드로이드 스튜디오의 공식 빌드 시스템이기도 하다.
Java, C/C++, 파이썬 등과 같은 여러 가지 언어를 지원한다.
Apacahe Maven
과 Apache Ant
에서 볼수 있는 개념들을 사용하는 대안으로써 나온 프로젝트 빌드 관리 툴이다.(완전한 오픈소스)
Groovy 언어를 사용한 Domain-specific-language
를 사용한다. (간결한 코드가 장점)
꽤 큰규모로 예상되는 multi-project
빌드를 도울 수 있도록 디자인되었다.