Build와 Build Tool의 필요성
빌드란 소스 코드를 컴파일, 테스트, 패키징 및 배포하는 과정을 말한다.
이를 자동화하여 개발 효율성을 높이기 위해 빌드도구를 사용한다.
자바진영의 빌드 도구는 Ant, Maven, Gradle순으로 발전해 왔으며, 성능적으로도 개선되어 왔다.
Build Tool 비교
비교 항목 |
Ant |
Maven |
Gradle |
출시 연도 |
2000 |
2004 |
2009 |
기반 기술 |
XML |
XML |
Groovy/Kotlin DSL |
주요 특징 |
- 자유로운 빌드 스크립트 작성 가능 |
|
|
- 높은 확장성
- CVS, SVN 체크아웃에서부터 컴파일, 테스트, 디플로이까지의 빌드 프로세스를 자동화
- JUnit과 완벽히 통합
- project, target으로 구성되며 target안에 task를 구현 | - pom.xml 파일로 의존성을 관리
- 프로젝트 전체 라이프 사이클 관리
- 표준화된 빌드 프로세스 | - Ant와 Maven의 장점 결합
- 간결하고 명확한 빌드 스크립트
- 빠른 빌드 속도 |
| 설정파일 | build.xml | pom.xml | - build.gradle
- settings.gradle |
| 장점 | - 높은 유연성
- 다양한 프로젝트 적용 가능 | - 의존성 관리 편리
- 프로젝트 일관성 유지 | - 간결하고 효율적인 빌드
- 다양한 빌드 시스템 지원 |
| 단점 | - 복잡한 스크립트 작성
- 학습 곡선 급격 | - 설정 파일 관리 부담 | - Groovy/Kotlin 문법 학습 필요 |
| 적합한 프로젝트 | - 자유로운 빌드 스크립트 필요
- 다양한 빌드 환경 | - 의존성 관리 중요
- 표준화된 빌드 프로세스 필요 | - 대규모 프로젝트
- 빠른 빌드 속도 중요 |