빌드와 관련된 정보를 프로젝트 객체 모델(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
maven에서 encoding을 설정하는 방법
메이븐을 활용해 빌드를 하다보면 encoding이 설정되어 있지 않다는 다음과 같은 warning 메시지를 확인할 수 있다.
https://www.slipp.net/questions/37
- basic
Maven project 제대로 사용하기 : pom.xml
Maven project의 핵심이라고 하면 당연히 pom.xml이라고 말할 수 있다. 해당 프로젝트에 import 되는 jar파일 정보 및 버전정보를 담고 있으며 최종적으로 패키징되는 기준값을 담고 있기 때문에 해당 파일만 잘 설정해줘도 프로젝트 실행과 배포를 위한 설정이 다 된거라고 볼 수 있다. 그럼 기본적인 구조에 대해서 확인하고 어떤 용도로 사용되는지 정리해보자.
https://ojava.tistory.com/147

- usage
[Maven] Maven 이란? (정의, 예제)
소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물 이다. - 이를 좀더 쉽게 풀어 말하자면 우리가 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties)을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다.
https://goddaehee.tistory.com/199
![[Maven] Maven 이란? (정의, 예제)](https://k.kakaocdn.net/dn/cAo2wn/btqBqOqHwOe/3cjiOvpy5H12z66kOIgY0k/img.png)


Seonglae Cho