[Maven] dependencyManagement
JAVA/Maven / 2011. 9. 18. 18:05
다중 프로젝트의 디펜던시 버전 관리
다중 프로젝트를 사용할 경우 디펜던시의 버전 번호를 각각의 pom.xml 파일에 정의하여 설정하여, 새로운 버전으로 업그레이드가 이루어질 경우 모든 pom.xml 을 변경해야 합니다.메이븐에서는 <dependencyManagement> 엘리먼트를 통하여 디펜던시 버전 번호를 병합할 수 있는 방안을 제공합니다.
부모 POM 에서 <dependencyManagement> 정의를 통해 자식 POM 에서 버전을 명기하지 않아도 디펜던시를 참조할 수 있습니다.
메이븐은 <dependencyManagement> 엘리먼트를 정의한 프로젝트를 찾을 때까지 자식 프로젝트에서 부모 프로젝트까지 확인합니다.
예제
부모 POM의 종송성 버전 정의
자식 프로젝트 POM
위와같이 자식 프로젝트에 버전을 명시하지 않아도 부모 POM <dependencyManagement> 엘리먼트에서 정의되었기 때문에, 자식 프로젝트의 spring-data-jpa 디펜던시의 버전 번호가 전달됩니다.
결론적으로 <dependencyManagement> 엘리먼트는 버전 번호를 지정하지 않아도 어느 하위 프로젝트라도 디펜던시를 정의할 수 있도록 해주는 환경변수와 같습니다.
모든 프로젝트에서 사용하는 디펜던시라면 부모 POM 에서 정의하여 사용하는 것이 훨씬 관리에 용이합니다.
참고자료
Maven, Sonatype이 만든 Maven 핵심 가이드 (팀 오브라이언 지음 / 장선진 옮김)