pom.xml


### 빌드와 관련된 정보를 프로젝트 객체 모델(Project Object Model)로 정의


1. 프로젝트 기본 정보
2. 빌드 설정
3. 프로젝트 관계 설정 (dependency 관련)
4. 빌드 환경 (빌드환경에 따른 정보, 프로파일)

- 최초 생성되는 기본구문 (필수구문)
> - 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](https://texonom.com/scope-0e25eb7e6b77497f91ea36ad1ee5e958)
> 
- 추가적인 설정으로 생성되는 부분 - customizing
> - properties
>> 버전관리시 용이 하다. ex) 하당 자바 버전을 선언 하고 dependencies에서 다음과 같이 활용 가능 하다 `<version>${java.version}</version>`
> - distributionManagement
> - profiles



메이븐의 'mvn' 명령은 기본적으로 pom.xml파일을 읽어 빌드를 실행
설정 파일을 사용하려면 -f 또는 --file 옵션
```typemvn -f customPom.xml package```


- encoding
> [maven에서 encoding을 설정하는 방법](https://www.slipp.net/questions/37)

- basic
> [Maven project 제대로 사용하기 : pom.xml](https://ojava.tistory.com/147)

- usage
> [[Maven] Maven 이란? (정의, 예제)](https://goddaehee.tistory.com/199)





