빌드와 관련된 정보를 프로젝트 객체 모델(Project Object Model)로 정의
- 프로젝트 기본 정보
- 빌드 설정
- 프로젝트 관계 설정 (dependency 관련)
- 빌드 환경 (빌드환경에 따른 정보, 프로파일)
- 최초 생성되는 기본구문 (필수구문)
- modelVersion : POM model의 버전
- artifactId - 프로젝트 빌드시 파일 대표이름 이다. groupId 내에서 유일해야 한다. Maven을 이용하여 빌드시 다음과 같은 규칙으로 파일이 생성 된다. artifactid-version.packaging. 위 예의 경우 빌드할 경우 bo-0.0.1-SNAPSHOT.war 파일이 생성된다
- parent - 프로젝트의 계층 정보
- groupId - 프로젝트를 생성하는 조직의 고유 아이디를 결정한다. 일반적으로 도메인 이름을 거꾸로 적는다
- dependencies
- type - default : jar
- build : 빌드에 사용할 플러그인 목록
- version - 프로젝트의 현재 버전, 프로젝트 개발 중일 때는 SNAPSHOT을 접미사로 사용
- packaging - 패키징 유형(jar, war, ear 등)
- name - project name
- description
- url - reference url scope
- 추가적인 설정으로 생성되는 부분 - customizing
- properties
- distributionManagement
- profiles
버전관리시 용이 하다. ex) 하당 자바 버전을 선언 하고 dependencies에서 다음과 같이 활용 가능 하다
<version>${java.version}</version>
메이븐의 'mvn' 명령은 기본적으로 pom.xml파일을 읽어 빌드를 실행
설정 파일을 사용하려면 -f 또는 --file 옵션
- encoding
- basic
- usage