maven

Mavan 개요

  • 불필요한 설정을 최소화 한다는 개념 아래 Ant와 같은 빌드 기능을 제공할 뿐 아니라 구조화 된 빌드 기능을 통해 learning curve 및 재사용성을 향상시킴
  • 의존성 관리, 라이브러리 관리, 빌드 생명 주기 및 단계 객체 모델을 갖는 프로젝트 관리 도구로 표준화된 빌드 기능 뿐만 아니라 리포팅 및 documentation 생성 기능 등을 제공

  • 프로젝트 객체 모델(POM) : 메이븐 엔진 내장 + POM.XML 파일에서 선언적으로 제공
  • 의존성 관리 모델 : 로컬 및 remote 저장소를 이용하여 관리
  • 빌드 생명주기와 각 단계 : 잘 정의된 단계들과 빌드 사이클에 따라 플러그인들을 조율

Maven 디렉토리 구조

  • Best practice 기반으로 정규화된 디렉토리 구조를 제공하고 있으며 모든 소스 파일들은 /src 디렉토리 밑에 빌드 된 output은 /target 디렉토리 밑에 위치함

빌드 Lifecycle

  • Maven 빌드는 소프트웨어 프로젝트의 핵심적인 빌드 라이프 사이클 개념을 따르고 있으며 빌드부터 artifact의 배포까지의 라이프 사이클을 정의하고 있음

의존성 관리 메커니즘

  • POM에서 선언적인 dependency 설정으로 빌드 및 배포 시에 필요한 라이브러리들을 관리하고 로컬 및 원격 저장소에서 선언된 라이브러리들을 다운로드 받아 사용

Maven Repository

  • artifact들의 저장소로 local 및 remote repository로 구성되며 프로젝트는 pom.xml에서 선언한 dependency들을 저장소로부터 불러와서 사용함

프로젝트 객체 모델(POM)

  • 프로젝트의 구조와 내용을 설명하고 있으며 pom.xml 파일에 프로젝트 관리 및 빌드에 필요한 환경설정, 의존성 관리 등의 정보들을 기술함

Maven 이클립스 통합 : m2eclipse

  • m2eclipse는 Eclipse IDE에서 Maven을 사용하기 위한 플러그인으로 Maven 프로젝트 생성 뿐 아니라 Maven 빌드와 WTP(Web Tools Project)의 통합 등 다양한 기능 제공

  • m2eclipse에서 제공하는 메뉴에서 메이븐 설정 및 연동 기능을 호출할 수 있음
  • m2eclipse는 이클립스의 Run As 메뉴에 Maven 기본 생명주기 단계를 추가하여 빌드 편의성을 제공

Categories:

Updated:

Comments