본문 바로가기

What i learn.

[What I Learn] Apache Maven

반응형

메이븐

소프트웨어 객체 모델기반 프로젝트 관리 도구.
관리에 필요한 대부분의 작업을 표준화, 자동화하여 곤리 요소들에 대한 일관된 기준을 제시

메이븐 역할

  • 디렉토리 구조
    프로젝트 혹은 개발자마다 다른 구조를 가질수 있는데 메이븐을 사용하면 기준에 가깝게 정형화된 구조 사용으로 혼란 방지.
  • 빌드 절차
    메이븐의 추성화한 프로세스를 따르면 일관된 바식으로 프로젝트 관리, 운영
  • 의존성 라이브러리 관리
    소프트웨어 개발시 재사용율을 높이기위해 모듈화 및 여러개의 구성요소 조합 필요, 오픈소스 라이브러리 사용 증가로 관리해야 할 외부 라이브러리 중가에 따라 프로젝트의 복잡도가 높아진다.
    따라서 메이븐은 라이브러리 저장소를 통해 의존 관계에 있는 라이브러리를 자동 관리 해준다.
  • 플러그인을 통한 다양성 기능 확장
    소스코드 자동생성 및 리포팅을 위한 작업 등 반복작업 자동화

settings. xml

메이븐 홈 디렉토리 아래에 위치
메이븐 빌드 시 다운로드 되는 라이브러리의 로컬 저장소의 경로 지정
사용자 별 프로파일 정보 설정

pom.xml

메이븐을 사용하는 프로젝트마다 하나씩 필요
프로젝트 객체 모델이라는 형식으로 프로젝트와 관련된 정보를 관리

pom.xml이 관리하는 정보

  • 프로젝트의 기본적인 정보를 나타내는 정보(프로젝트를 구분하기 위해 사용하는 고유값을 갖는 식별자)
    • 모델버전 : 메이븐의 모델버전을 나타내는 것으로 변경 없음
    • 그룹아이디 : 일반적으로 조직의 ㅁ도메인명 사용
    • 아티팩트 아이디 : 프로젝트 이름사용
    • 버전 : 프로젝트의 버전
    • 패키징 정보 : jar,war,pom등의 패키징 형태를 정의
    • 최상위 POM설정 상속 - 모든 메이븐 파일은 이를 상속
  • 메이븐 내부에서 반복적으로 사용되는 상수값을 정의하는 속성 정보
  • 다른 라이브러리와의 의존관계를 나타내는 의존성 정보
  • 프로젝트 빌드를 위한 정보로서 플러그인 정보나 빌드 환경을 관리하는 정보

메이븐 수명주기

빌드 수명주기

Compile - Test - Package - Install - Deploy 단게를 거친다.

  • Complie : 소스코드를 컴파일하는 단계
  • Test : 단위 테스를 수행하는 단계, 실패하는 경우 빌드 실패
  • Package : 패키지으이 종류에 따라 결과물을 압축하는 단계
  • Install : 로컬 환경의 로컬 저장소에 패키징한 결과물을 배포하는 단계
  • Deploy : 원격 저장소에서 패키징한 결과물을 배포하는 단계

클린 수명주기

클린 단계로 구성되는데 메이븐 빌드를 통해 싱성된 산출물을 삭제
클린을 수행하면 Target 밑의 모든 내용 삭제

반응형

'What i learn.' 카테고리의 다른 글

[What I Learn] AWS Associate Certification -1  (0) 2021.05.31
[What I Learn] HashMap사용  (0) 2021.05.03
DevOps 에 관하여  (0) 2021.04.05
[What I Learn] Git Flow( using Git Extension)  (0) 2020.11.17
[What I Learn] MVC의 service vs Dao  (0) 2020.11.16