- 라이브러리에 대한 의존 관계 및 소스코드 부터 배포 가능한 산출물을 빌드(Build)하는 빌드 툴.프로젝트 빌드, 관리에 사용되는 도구
- 필요한 라이브러리를 pom.xml에 정의해 놓으면 내가 사용 할 라이브러리나 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운받아준다.
- 간단한 설정을 통한 배포 관리가 가능
- maven은 프레임워크이기 때문에 동작방식이 정해져있고, 미리 정의하고 있는 빌드 순서가 있다. 이를 LifeCycle이라고 한다.
- clean : 빌드시 생성되었던 파일들을 삭제하는 단계
- validate : 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계
- compile : 프로젝트의 소스코드를 컴파일 하는 단계
- test : 단위 테스트를 수행하는 단계(테스트 실패시 빌드 실패로 처리)
- package : 실제 컴파일된 소스 코드와 리소스들을 jar,war등의 배포를 위한 패키지로 만드는 단계. 단위 테스트가 성공하면 pom.xml의 엘리먼트 값(jar,war,ear)에 따라 압축
- verify : 통합 테스트 결과에 대한 검사를 실행하여 품질 기준을 충족하는지 확인하는 단계
- install : 패키지를 로컬 저장소에 설치하는 단계
- site : 프로젝트 문서와 사이트를 작성, 생성하는 단계
- deploy : 만들어진 package를 원격저장소에 release하는 단계
- LifeCycle단계를 의미한다.
- Phase는 의존관계를 가지고 있다. 해당 Phase가 수행되려면 이전 단계의 Phase가 모두 수행되어야 한다. 즉, 모든 빌드 단계는 이전 단계가 성공적으로 실행되었을 때 실행된다는 것이 Dependency
- phase간에는 정해진 순서가 있다.
- LifeCycle에서 phase를 실행시 이전 phase부터 순차적으로 실행이된다.
예) test phase 실행 : process-resource -> compile -> process-test-resource -> test 순으로 실행
- maven이 수행할 구체적인 작업으로 하나의 phase는 하나의 goal과 맵핑됨.(내가 실행할 명령)
- 툴을 이용하거나 터미널에서 실행
[maven명령어 형태]
- mvn [options][<goal(s)>][<phase(s)>]
maven에서 자주 사용하는 명령어 확인 후 추후 확인예정!