메이븐(Maven)

Geeho.a·2020년 10월 22일
0

1. 메이븐 정의 / 특징

  • 라이브러리에 대한 의존 관계 및 소스코드 부터 배포 가능한 산출물을 빌드(Build)하는 빌드 툴.프로젝트 빌드, 관리에 사용되는 도구
  • 필요한 라이브러리를 pom.xml에 정의해 놓으면 내가 사용 할 라이브러리나 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운받아준다.
  • 간단한 설정을 통한 배포 관리가 가능

2. Maven LifeCycle

  • maven은 프레임워크이기 때문에 동작방식이 정해져있고, 미리 정의하고 있는 빌드 순서가 있다. 이를 LifeCycle이라고 한다.
  • clean : 빌드시 생성되었던 파일들을 삭제하는 단계
  • validate : 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계
  • compile : 프로젝트의 소스코드를 컴파일 하는 단계
  • test : 단위 테스트를 수행하는 단계(테스트 실패시 빌드 실패로 처리)
  • package : 실제 컴파일된 소스 코드와 리소스들을 jar,war등의 배포를 위한 패키지로 만드는 단계. 단위 테스트가 성공하면 pom.xml의 엘리먼트 값(jar,war,ear)에 따라 압축
  • verify : 통합 테스트 결과에 대한 검사를 실행하여 품질 기준을 충족하는지 확인하는 단계
  • install : 패키지를 로컬 저장소에 설치하는 단계
  • site : 프로젝트 문서와 사이트를 작성, 생성하는 단계
  • deploy : 만들어진 package를 원격저장소에 release하는 단계

Maven Phase

  • LifeCycle단계를 의미한다.
  • Phase는 의존관계를 가지고 있다. 해당 Phase가 수행되려면 이전 단계의 Phase가 모두 수행되어야 한다. 즉, 모든 빌드 단계는 이전 단계가 성공적으로 실행되었을 때 실행된다는 것이 Dependency
  • phase간에는 정해진 순서가 있다.
  • LifeCycle에서 phase를 실행시 이전 phase부터 순차적으로 실행이된다.
    예) test phase 실행 : process-resource -> compile -> process-test-resource -> test 순으로 실행

Maven Goal

  • maven이 수행할 구체적인 작업으로 하나의 phase는 하나의 goal과 맵핑됨.(내가 실행할 명령)
  • 툴을 이용하거나 터미널에서 실행

[maven명령어 형태]

  • mvn [options][<goal(s)>][<phase(s)>]

maven에서 자주 사용하는 명령어 확인 후 추후 확인예정!

0개의 댓글

관련 채용 정보