POM?

  • Project Object Model
  • 프로젝트의 메이븐 빌드 정보를 담고 있는 설정 파일
  • 프로젝트 빌드를 수행할 때, 해당 설정 파일을 사용한다.


POM 파일의 4가지 카테고리

  • 프로젝트 관계 설정
    • 프로젝트 이름, URL, 개발자 목록, 라이센스 등
  • 빌드 설정
    • 소스 디렉토리, 리소스 디렉토리 설정, 플러그인 설정 변경 등
  • 프로젝트 기본 정보
    • 프로젝트/라이브러리 의존관계 관리
  • 빌드 환경
    • 배포 관련 설정


POM 파일 엘리먼트

  • modelVersion: POM 모델의 버전 (4.0.0)
  • groupId: 프로젝트 생성 조직의 고유 아이디 (일반적으로 도메인 명)
  • artifactId: 프로젝트 식별 아이디 (프로젝트 고유 아이디)
  • packaging: 프로젝트를 어떤 형태로 패키징할지 결정 (jar, war, ear, pom 등)
  • version: 프로젝트의 현재 버전, 프로젝트 개발 도중 SNAPSHOT을 접미사로 사용할 수 있으며, 라이브러리를 다른 방식으로 관리
  • name: 프로젝트 이름
  • url: 프로젝트 사이트 URL
  • dependencies: 의존 라이브러리 관리
  • build: 프로젝트 소스/테스트/리소스/빌드 디렉토리 등 설정 (하위의 요소를 통해)
    • sourceDirectory
    • testSourceDirectory
    • outputDirectory
    • testOutputDirectory
    • resources
    • testResources
  • repositories: 저장소의 경로를 변경할 수 있음
  • pluginManagement: 빌드 설정 파일에서 관리하는 플러그인 목록


최상위 POM 설정 파일

  • 메이븐의 POM 파일은 상속 관계를 가질 수 있음
  • 상위 POM 파일을 확인하기 위해서는 mvn help:effective-pom 명령을 수행



출처: 자바 세상의 빌드를 이끄는 메이븐 (박재성 저)

+ Recent posts