프로젝트 관리와 이해를 돕기 위해 설계된 빌드 자동화 도구
<aside>
💡 빌드 도구
프로젝트 생성/테스트/배포 등 작업을 위한 전용 프로그램.
라이브러리 추가 프로젝트 진행을 원활히 하고, 동기화의 어려움을 해소하고자 등장.
최초로 등장한 빌드 도구인 Ant를 주로 사용하다가 주류가 Ant → Maven → Gradle로 이동하고 있다.
</aside>
특징
- 프로젝트 빌드, 보고서 생성, 문서화 등의 작업을 자동화하는 것을 목표한다.
- 주로 Java 프로젝트에서 사용한다.
- 컴파일과 빌드를 동시에 수행한다.
- 라이브러리 관리 기능을 내포하고 있다.
- 중앙 저장소를 통한 자동 의존성 관리를 지원한다.
[ 라이브러리를 관리하는 파일 서버 ]
- 필요한 라이브러리를 pom.xml에 정의하면 해당 라이브러리를 관리해주는 것.
주요 개념
Maven 프로젝트의 기본 단위는 POM
POM (Project Object Model):
- 프로젝트에 대한 메타데이터와 프로젝트 빌드 설정을 정의하는 XML 파일
- 프로젝트의 의존성, 플러그인, 빌드 프로필, 버전 등의 정보가 포함
- 예제
JUnit을 테스트 의존성으로 추가하고, Java 1.8을 사용하여 컴파일하는 설정을 포함
라이프사이클
미리 정해진 빌드 순서
- 주요 라이프사이클은
clean -> default -> site
- 각 라이프사이클은 순서를 갖는 단계(Phase)로 구성된다.
- Clean - 3개의 Phase
- Default - 21개의 Phase
- Site - 4개의 Phase