Phase
◎ Default(build) : 일반적인 빌드 프로세스를 위한 모델이다.
◎ clean : 빌드 시 생성되었던 파일들을 삭제하는 단계
◎ validate : 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계
◎ compile : 프로젝트의 소스코드를 컴파일 하는 단계
◎ test : 유닛(단위) 테스트를 수행 하는 단계(테스트 실패시 빌드 실패로 처리, 스킵 가능)
◎ package : 실제 컴파일된 소스 코드와 리소스들을 jar, war 등등의 파일 등의 배포를 위한 패키지로 만드는 단계
- 서로 의존관걔를 지님
빌드 순서는 compile => test => package
① compile : src/main/java 디렉토리 아래의 모든 소스 코드가 컴파일 된다.
② test : src/test/java, src/test/resources 테스트 자원 복사 및 테스트 소스 코드 컴파일 된다.
③ packaging : 컴파일과 테스트가 완료 된 후, jar, war 같은 형태로 압축하는 작업.
※ junit : 단위 테스트 프레임워크. 테스트 단계를 거치기 위해 의존 설정을 해준다.
[Maven] Maven 이란? (정의, 예제)
소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물 이다. - 이를 좀더 쉽게 풀어 말하자면 우리가 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties)을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다.
https://goddaehee.tistory.com/199
![[Maven] Maven 이란? (정의, 예제)](https://www.notion.so/image/https%3A%2F%2Fk.kakaocdn.net%2Fdn%2FcAo2wn%2FbtqBqOqHwOe%2F3cjiOvpy5H12z66kOIgY0k%2Fimg.png?table=block&id=f224e0c4-dbb7-41ab-a578-732fdb24590e&cache=v2)

Seonglae Cho