빌드 자동화 도구
소스코드를 소프트웨어로 변환하는 과정에 필요한 전처리, 컴파일 등의 작업을 수행하는 소프트웨어
빌드 자동화 도구 특징
- 자동 빌드, 테스트, 배포 수행
- 컴파일 후 애플리케이션 자동 생성
- 라이브러리 자동 추가/관리 및 버전 동기화
예시
Make
- 유닉스 계열에서 주로 사용
- 파일 간의 종속성 기반
Ant
- 아파치 소프트웨어재단 개발
- 자바 프로젝트의 공식 빌드 자동화 도구
- XML기반의 빌드 스크립트 사용
- 스크립트의 재사용이 어려움
- 정해진 규칙이나 표준이 없어 개발자가 모든것을 정의
Maven
- 아파치 소프트웨어재단에서 Ant의 대안으로 개발
- 의존성을 설정하여 라이브러리를 관리
- 규칙이나 표준 존재해 예외사항만 기록
- 컴파일과 빌드를 동시에 수행 가능
- 정해진 라이프사이클에 따라 작업
Gradle⭐️
- 안드로이드 스튜디오의 공식 빌드 도구
- Groovy기반의 빌드 스크립트 사용
- 의존성 활용
- 실행할 처리명령들을 모아 테스크 단위 실행
- 기존 Ant와 Maven을 보완해 개발
- 테스크 재사용/공유 가능한 빌드 캐시 기능 지원
- 다양한 언어에 대한 빌드 지원
Jenkins⭐️
- Java기반의 오픈소스 형태로 가장 많이 사용됨
- 서블릿 컨테이너에서 실행되는 서버 기반 도구
- 지속적 통합(CI) 서비스 제공
- SVN, Git 등 대부분의 형상 관리 도구와 연동가능
- 친숙한 Web GUI 제공
- 분산 빌드나 테스트 가능