[Maven] Lifecycle?? 라이프 사이클??
[Maven] Lifecycle
- Maven에서는 clean, build, site의 세가지 Lifecycle을 제공
- compile, test, package, deploy등의 과정은 build Lifecycle에 속한다.
- Maven은 모든 빌드 단위에 대한 Lifecycle이 예약되어 있어서 개발자가 임의로 변경 할 수 없다.
- 각 LifeCycle은 순서를 갖는 단계(phase)로 구성된다.
- clean : 빌드 시 생성되었던 산출물을 삭제
- target폴더 자체가 사라짐
- default : 프로젝트 배포절차, 패키지 타입별로 다르게 정의됨
- site : 프로젝트 문서화 절차
Phase
- Phase는 Build Lifecycle의 각각의 단계를 의미
- Phase는 특정 순서에 따라서 goal이 실행되도록 구조를 제공 함.
- Phase간에는 의존 관계가 있다.
- ex) package phase가 수행되기 위해서는 이전 phase가 순서대로 수행된 다음에 수행
Phase와 Goal의 관계
- Maven에서 제공하는 모든 기능은 플러그인 기반으로 동작한다.
- Maven에서 기본으로 제공하는 Phase를 실행하면 해당 Phase와 연결된 플러그인의Goal이 실행된다.
- Plugin Goal
- Maven에서 플러그인을 실행할 때 '플러그인 이름: 플러그인 지원 골'형식으로 실행할 기능을 선택 할 수 있음
- ex) mvn compiler:compile은 'compiler'플러그인에서 'compile'기능(goal)을 실행
Maven 디폴트 Phase와 Goal
여러가지만 있지만 몇가지만 정리합니다..
- package
- package를 실행하면 compile, test-compile, test순으로 실행된 다음 jar, war파일이 target 디렉토리에 생성됨
- install
- 로컬 repo에 패키지를 배포
- Maven install Plugin
- deploy
- 원격 repo에 등록하며, 다른 프로젝트에서 사용 할 수 있도록 함
- Maven Deploy Plugin
- clean
- target 디렉토리의 결과물을 모두 제거한다.
- Maven Clean Plugin
댓글
댓글 쓰기