tools & libs/빌드툴(maven,gradle)

[maven] maven lief cycle 관리

  • -

이번 포스트에서는 maven의 life cycle과 goal에 대해서 살펴보자.

 

maven life cycle

maven이 동작하는 단계를 life cycle이라고 하며 이 단계는 plugin과 밀접하게 연관되어 있다.

Maven – Introduction to the Build Lifecycle (apache.org)

 

Maven – Introduction to the Build Lifecycle

The build lifecycle is simple enough to use, but when you are constructing a Maven build for a project, how do you go about assigning tasks to each of those build phases? The first, and most common way, is to set the packaging for your project via the equa

maven.apache.org

 

built-in life cycle

maven은 clean과 default, site 라는 3가지 라이프사이클을 갖는다. 각각의 라이프사이클은 maven에서는 Phase라고 부르는 여러 단계로 세분화 되며 순서별로 의존성을 갖는다. 예를 들어 default life cycle에서 compile이 완성 되어야 test가 진행되고 test가 지나야 package가 가능하다.

참조: Java Tutorial: Maven Life Cycle - 2021 (bogotobogo.com)

 

각각의 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이다.

출처: Java Tutorial: Maven Life Cycle - 2021 (bogotobogo.com)

다음은 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]을 실행하면 된다.

 

이클립스 계열에서의 실행은 아래 더보기를 참조한다.

더보기

만약 별도로 stand alone의 maven을 설치했다면 goal을 실행할 때 mvn 명령을 사용한다.

mvn goal_name

eclipse와 같은 IDE 들은 내장 maven을 사용하는데 자주 사용되는 명령어 들에 대해 바로 실행할 수 있는 메뉴를 제공해주고 있다.

clean이나 generate-sources, install test는 바로 실행할 수 있고 다른 goal을 실행할 경우는 4번의 [Maven build...]을 클릭 후 goal에 원하는 goal을 입력한다.

이후3번 Maven build를 선택하면 작성된 명령어들을 선택해서 실행할 수 있다.

 

 

배포 설정

참고로 deploy 까지 해보려면 다음의 포스트를 참조하자.

Synology NAS에 Web Application 배포하기 - 1. 톰켓 설치 (tistory.com)

 

Synology NAS에 Web Application 배포하기 - 1. 톰켓 설치

Synology NAS에 Web Application 배포하기 나름 고가를 들여 구입한 Synology NAS(사실 최하위급 기종이다. ㅜㅜ)를 좀 더 활용해 보기 위해서 웹서버를 설치하고 운영해보려 한다. 톰켓 설치 및 기본 설정

goodteacher.tistory.com

[maven]서버에 배포하기 (tistory.com)

 

[maven]서버에 배포하기

Synology nas가 DSM 7으로 업데이트 되면서 자바와 Tomcat이 사라졌다.ㅜㅜ 언젠가 생기겠지만 급한 사람이 우물을 판다고 필요한 사람이 수를 찾아야 한다.ㅜㅜ 다행이 자바는 open jdk 16 버전을 설치할

goodteacher.tistory.com

 

'tools & libs > 빌드툴(maven,gradle)' 카테고리의 다른 글

[maven]arche type 만들기  (0) 2023.04.14
[maven] maven trouble shooting  (0) 2022.04.12
[maven] maven을 활용한 의존성 관리  (0) 2022.04.11
[maven]서버에 배포하기  (0) 2021.08.22
[gradle]build.gradle  (0) 2021.01.30
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.