SW Academy

[SW Academy] 01.16

카르노도 2024. 1. 18. 09:14

Maven

  • Java의 대표적인 빌드 툴(Build Tool) 중 하나
  • apache 재단에서 개발하는 오픈소스
  • apache ant의 후속으로 개발
  • XML을 사용하여 빌드 파일을 기술
  • 중앙 저장소를 이용한 편리한 의존 관계 라이브러리 관리
  • 중앙 저장소: 메이븐에서 이용할 수 있는 라이브러리를 모아서 관리하는 웹 서비스

장점

  • 편리한 의존 관계 라이브러리 관리
  • 일관된 디렉토리 구조와 빌드 프로세스 관리
  • 다양한 플러그인

단점

  • maven에서 기본적으로 지원하지 않는 빌드 과정 추가가 복잡해짐
  • 플러그인의 설정이 상이하거나 장황해지면 재사용성 및 확장성이 떨어짐

Life Cycle

  • 미리 정해진 빌드 순서
  • maven은 빌드 순서가 정해져 있음. 이를 life cycle이라고 함

clean

  • 프로젝트를 정리하고 이전 빌드에서 생성된 모든 파일을 제거
  • project_root/target 삭제

validate

  • 프로젝트의 상태를 점검하고, 필드에 필요한 정보의 존재 여부를 체크
  • 프로젝트의 POM 및 구성을 검증

compile

  • 프로젝트의 소스 코드를 컴파일

test

  • 프로젝트에 대한 테스트를 실행

package

  • 프로젝트에 대한 JAR(Java ARchive) 또는 WAR(Web Archive) 파일을 생성하여 배포할 수 있는 형식으로 변환

verify

  • 패키지가 품질 기준에 적합한지 검사

install

  • 패키징된 JAR/WAR 파일을 로컬 저장소에 배포

site

  • 프로젝트 문서를 생성

deploy

  • 프로젝트를 컴파일, 테스트, 빌드 후 패키징된 JAR/WAR 파일을 원격 저장소에 복사

POM

  • Maven의 기본 작업 단위
  • Maven이 프로젝트를 빌드하는데 사용하는 프로젝트 및 구성에 대한 세부 정보가 포함된 XML 파일