[Maven ⑤] Maven 빌드 라이프사이클

1 분 소요

[Maven ⑤] Maven 빌드 라이프사이클

뉴렉처 Maven 강의내용을 정리한 내용입니다. :+1:

강의링크

:pushpin: Maven(메이븐) 빌드 라이프사이클

Maven으로 프로젝트를 컴파일하고 실행할 때, mvn compile mvn test mvn package 등의 명령어를 사용했다.

이번 시간에는 Maven에서 사용하는 명령어들은 어떤 것들이 있는지 알아보겠다.

Maven Build Lifecycle Basics

기본적인 자바 프로젝트 빌드 순서는 다음과 같다.

  1. validate
  2. compile
  3. test
  4. package
  5. verify
  6. install
  7. deploy

이를 단계 Phase라 부른다.
모든 Phase가 실행되어야 Build가 가능한 것은 아니며, maven에서 각 Phase가 별개의 프로그램처럼 동작하게 구성해 놓았기 때문에 Phase의 내용도 프로젝트의 특징에 따라 다르게 할 수 있다. 세부적인 Phase 설정은 pom.xml을 변경하면 가능하다.

자바 프로젝트와 웹 프로젝트는 약간 다른 Phase를 갖게 된다.
pom.xml<packaging></packaging>태그 내의 값이 jar(자바 프로젝트)인지 war(웹 프로젝트)인지에 따라서 Phase를 다르게 구성하며, 다르게 말하면 pom.xml내 패키징 태그 내용을 다르게 해줌으로서 프로젝트 유형을 변경할 수 있게 된다.

Phase들을 실행하고자 할 때, 필요한 Phase 명령을 모두 실행할 필요는 없다.
예를 들어 프로젝트를 컴파일 하고싶다면, mvn compile이라는 명령어 하나를 입력하면 컴파일까지의 모든 Phase를 자동으로 실행해준다.


pom.xml?

그럼 pom.xml은 무엇인가?

pom이란 project object model의 약자로서, 프로젝트를 구성하는 내용을 하나의 모델로 가진 문서라는 의미이다.
따라서 모델 파일을 변경하면 프로젝트가 달라지게 되는 것이다!


Phase -> Plug-in -> Goal

메이븐 프로젝트 루트 디렉토리 위치에서 콘솔창에 명령어를 입력해보자.

mvn help:describe -Dcmd=compile

그럼 다음과 같은 결과를 볼 수 있다.


Phase 의 오른쪽 설명이 해당 Phase에서 사용하고 있는 Plug-in이며, 그 오른쪽에 해당 Plug-in이 사용하는 Goal에 대한 내용을 볼 수 있다.

여기서 알 수 있듯, 빌드의 단계(Phase) 들은 하나의 프로그램으로 연결되어 실행되는 것이 아니라, 각 단계별로 각각의 프로그램처럼(플러그인) 실행할 수 있다.
따라서 각 Phase에서 사용하는 Plug-in을 다른 것으로 교체해 사용할 수도 있는 것이다.
Plug-in은 다시 Goal으로 쪼개질 수 있는데, 즉 플러그인 안에 작게 구성된 여러개의 프로그램을 Goal이라고 부른다.

태그:

카테고리:

업데이트:

댓글남기기