공부/Maven
[서적 핵심 정리] Maven 라이프사이클
피의화요일
2013. 4. 6. 03:07
Maven 라이프사이클
- 메이븐은 프로젝트의 각 단계별 빌드 과정을 라이프사이클로 미리 정의하고 있음
- 기본 라이프 사이클: 소스 컴파일, 테스트, 압축, 배포 등을 담당
- compile: 소스 코드 컴파일
- test: 단위테스트 실행
- package: jar, war 등으로 압축
- install: 로컬 저장소에 압축한 파일 배포
- deploy: 원격 저장소(메이븐 저장소)에 압축한 파일 배포
- clean 라이프 사이클: 모든 산출물 삭제 (target 디렉토리 삭제)
- clean
- site 라이프사이클: 프로젝트에 대한 문서 사이트 생성
- site: 문서 사이트 생성
- site-deploy: 문서 사이트를 설정된 서버에 배포
Maven 페이즈와 플러그인
- 메이븐 페이즈는 메이븐 플러그인을 통해 실행됨
- 메이븐 플러그인 설정
- pom.xml의 <build><plugins><plugin>에 사용하고자 하는 플러그인 설정
- Goal
- 플러그인에서 실행할 수 있는 각각의 작업
- 예) Compile 플러그인의 Goal
- compile: 소스 코드 컴파일
- testCompile: 테스트 코드 컴파일
- help: 플러그인 도움말 제공
Maven 기본 페이즈
- 자원 복사 및 소스 컴파일
- process-resource: 모든 자원을 target 디렉토리로 복사
- compile: 자바 소스 코드를 컴파일
- compiler 플러그인에 자바 소스 버전, 타겟 버전, 소스 인코딩 등을 정의할 수 있음
- 테스트 자원 복사 및 테스트 소스 컴파일
- process-test-resources: 테스트 자원 복사
- test-compile: 테스트 소스 코드 컴파일
- 테스트
- test: 단위 테스트 실행, 테스트 실행결과 리포트 생성(/target/surefire-reports)
- 패키징
- package: jar, war 파일 등이 target 디렉토리에 생성
- 배포
- install: 압축한 파일을 로컬에 배포
- deploy: 원격 저장소에 압축한 파일을 등록
- 결과물 제거
- clean: target 디렉토리의 결과물을 모두 제거
출처: 자바 세상의 빌드를 이끄는 메이븐 (박재성 저)