maven은 clean과 default, site 라는 3가지 라이프사이클을 갖는다. 각각의 라이프사이클은 maven에서는 Phase라고 부르는 여러 단계로 세분화 되며 순서별로 의존성을 갖는다. 예를 들어 default life cycle에서 compile이 완성 되어야 test가 진행되고 test가 지나야 package가 가능하다.
각각의 life cycle 역할은 아래와 같다.
clean: project를 정리하는 일을 담당한다.
모든 컴파일 결과물들을 완전히 청소하는 단계로 뭔가 단단히 꼬였을 때 사용할 수 있다.
default와 별도의 life cycle이므로 따로 호출해야 동작한다.
default: project의 개발 및 배포와 관련된 일을 담당한다.
site: project의 document를 작성하는 일을 담당한다. site phase는 target/site 디렉토리에 문서 사이트를 생성하고 site-deploy phase는 생성한 문서 사이트를 설정된 서버에 배포하는 역할을 수행한다.
default life cycle
가장 핵심이 되는 life cycle은 당연히 default life cycle이다.
다음은 default life cycle에 있는 주요 phase들이다.
Validate : 프로젝트 구성이 올바른지, 필요한 모든 정보를 사용할 수 있는지 확인하는 단계
Compile : 프로젝트의 소스코드를 컴파일 하는 단계
Test : 단위 테스트를 수행 하는 단계로 하나라도 통과하지 못하면 build는 실패
Pacakge : 컴파일된 결과물과 리소스들을 jar, war 으로 묶어 배포를 위한 패키지로 만드는 단계
Verify : 통합 테스트 결과에 대한 검사를 실행하여 품질 기준을 충족하는지 확인하는 단계
Install : 혹시 다른 프로젝트에서 참조가 필요한 경우 패키지를 로컬 저장소에 설치하는 단계
Deploy : 만들어진 패키지를 원격 저장소에 배포 하는 단계
각 phase들은 그냥 논리적인 단계이고 실제로는 phase에 연결된 plugin 들이 있고 이 plugin들이 수행할 수 있는 명령이 실행되는데 이 명령을 goal이라고 한다.
goal의 실행
goal을 실행하기 위해서는 MAVEN 메뉴의 Lifecycle에 표시된 phase를 오른클릭해서 [Run]을 실행하면 된다.