본문 바로가기

공부/Maven

[서적 핵심 정리] Maven 라이프사이클

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 디렉토리의 결과물을 모두 제거


출처: 자바 세상의 빌드를 이끄는 메이븐 (박재성 저)