pom.xml 파일은 메이븐의 기능을 사용하기 위해 작성하는 파일이다. 이 파일에는 프로젝트, 의존성 라이브러리, 빌드 등의 정보 및 해당 프로젝트를 관리하는 데 필요한 내용이 기술되어 있다. 이 파일을 살펴보기 앞서 메이븐에 대해 좀 더 자세히 알아보자.
빌드 관리 도구는 JVM이나 WAS가 프로젝트를 인식하고 실행할 수 있게 우리가 작성한 소스코드와 프로젝트에 사용된 파일들(.xml, .jar, .properties)를 빌드하는 도구이다. 개발 규모가 커질수록 관리할 라이브러리가 많아지고 라이브러리 간 버전 호환성을 체크해야 하는 어려움이 발생하는데, 빌드 관리 도구를 이용하면 이 같은 문제를 해결할 수 있다.
아파치 메이븐은 자바 기반의 프로젝트를 빌드하고 관리하는 데 사용하는 도구이다. 초창기 자바 프로젝트의 대표적 관리 도구였던 Ant를 대체하기 위해 개발되었다. 메이븐의 가장 큰 특징은 pom.xml 파일에 필요한 라이브러리를 추가하면 해당 라이브러리에 필요한 라이브러리까지 함께 내려받아 관리한다는 점이다.
메이븐의 기능은 생명주기 순서에 따라 관리되고 동작한다. 인텔리제이 IDEA에서 생성한 프로젝트의 경우, 우측에 있는 'Maven' 탭을 클릭하면 메이븐의 생명주기를 확인할 수 있다.
메이븐의 생명 주기는 크게 기본 생명주기(Default Lifecycle), 클린 생명주기(Clean Lifecycle), 사이트 생명주기(Site Lifecycle)의 3가지로 구분한다. 각 생명주기에는 다음 그림과 같은 단계(phase)가 존재하며, 특정 단계를 수행하기 위해서는 이전 단계를 마쳐야 한다.
각 단계에서는 메이븐에서 제공하는 플러그인이 설정된 목표(goal)를 수행하는 방식으로 동작한다. 또한 그림에서 표현되지 않은 세부 단계들이 존재한다. 메이븐의 생명주기 단계는 순차적으로 실행되며, 각 생명주기 단계의 역할은 다음과 같다.