[CS]Maven 이란?

윤재열·2022년 2월 28일
0

CS지식

목록 보기
2/16

Spring 프레임워크 기반의 프로젝트를 진행해보려 했더니 크게 Maven,Gradle이 있었습니다. 이 두개의 차이를 모르겠어서 정리를 해보았습니다.

메이븐(Maven)이란 무엇인가?

사전적 정의 : Apache Maven은 자바용 프로젝트 관리도구로 Apache Ant의 대안으로 만들어 졌다. Apache License로 배포되는 오픈 소스 소프트웨어입니다.

  • 만약 사이드 프로젝트를 하려고하는데 개발자들이 서로 필요한 jar파일을 공유하고자 그것을 메일이나 카톡으로 주고받는 다면 번거로울 것입니다.

  • 그래서 이러한 라이브러리들을 편리하게 공유하고 다운받고자 나온 것이 메이븐입니다.

  • 즉, 필요한 라이브러리를 특정문서(porm.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 다운받아줍니다.

Maven의 장점

  • 라이브러리의 관리를 매우 용이하게 해줍니다.
  • 프로젝트의 작성부터 컴파일,페트스 등 프로젝트 라이프사이클에 포함되는 각 테스트를 지원해줍니다.
  • war 파일 기반의 배포용으로도 자주 사용됩니다.

Maven의 LifeCycle

  • 메이븐은 프레임워크이기 때문에 동작 방식이 정해져있는데, 일련의 단계(phase)에 연계된 목표를 실행하는 과정을 Build라고 하며, 미리 정의되어있는 Build들의 순서를 라이프사이클(LifeCycle)이라고 합니다.
  • 즉, 미리 정의된 빌드순서를 라이프사이클(LifeCycle)이라고 하며, 각 빌드 단계를 Phase 라고 합니다.

일반적으로 메이븐은 3개의 표준 라이브사이클을 제공합니다.

  • Clean : 빌드 시 생성되었던 Output을 지워줍니다.
  • Default(Build) : 일반적인 빌드 프로세스를 위한 모델입니다.
  • Site : 프로젝트 문서와 사이트 작성을 수행합니다.

Phase의 특성

  • Phase는 특정 순서에 따라서 goal 이 실행되도록 구조를 제공합니다.

  • Phase간에는 의존 관계가 있습니다. ex) compile phase가 수행되는 순서는 정해진 이전 phase의 다음입니다.

  • 즉 모든 빌드단계는 이전 단계가 성공적으로 실행되었을 때 실행된다는 것이 Dependency입니다.

profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글