프로젝트 정보를 담는 POM
POM은 XML로 프로젝트 정보와 빌드 설정을 표현한다. 의존성과 플러그인, 빌드 프로필뿐 아니라 버전과 설명 같은 정보도 포함한다. Maven은 이를 읽어 필요한 설정을 얻고 목표를 실행한다. 모든 내용을 직접 지정하기보다 공통 기본값을 활용하는 구조다.
의존성과 플러그인
의존성 관리와 플러그인을 바탕으로 빌드를 구성하며 전이 의존성도 처리한다. 테스트 실행과 보고서 생성 같은 작업을 일반적인 프로젝트 흐름에 포함한다. 프로젝트 모델과 규칙을 공유하면 다른 Maven 프로젝트를 이해할 때 공통 구조를 활용할 수 있다.
여러 모듈의 설정 공유
부모 POM을 통해 설정을 상속하거나 여러 모듈을 모아 함께 작업할 수 있다. 설정을 물려받는 상속과 하위 모듈을 묶어 실행하는 집계는 서로 다른 개념이다. 권장 디렉터리 구조와 맞지 않는 프로젝트에는 추가 설정이나 일부 기능의 제한이 생길 수 있다.