빌드 관리 도구
빌드 관리 도구(Build Management Tool)는 소프트웨어 프로젝트의 빌드, 의존성 관리, 배포 등을 자동화하는 도구다. 빌드는 JVM이나 WAS가 소스 코드 파일들을 실행 가능한 소프트웨어로 변환하는 과정을 말한다. 개발 규모가 커질수록 라이브러리가 많아지는데 라이브러리 간 호환성을 체크해야한다. 빌드 관리 도구는 이러한 빌드 프로세스를 효과적으로 관리하고 지원한다.
메이븐(Maven)
Java 기반의 프로젝트를 위한 빌드 관리 도구로, 프로젝트의 라이프사이클 관리, 의존성 관리, 배포 등을 자동화한다.
- xml 기반의 프로젝트 설정을 사용한다.
- pom.xml 파일에 라이브러리를 추가하면 해당 라이브러리에 필요한 라이브러리까지 함께 내려받아 관리한다.
- 기능
- 프로젝트 관리: 프로젝트 버전과 아티팩트를 관리한다.
- 빌드 및 패키징: 의존성을 관리하고 설정된 패키지 형식으로 빌드를 수행한다.
- 테스트: 빌드전 단위 테스트를 통해 코드의 정상 동작 여부를 확인한다.
- 배포: 빌드가 완료되면 빌드 완료된 패키지를 원격 저장소에 배포한다.
메이븐의 생명주기
Apache Maven은 빌드 프로세스를 관리하기 위한 미리 정의된 일련의 빌드 단계를 제공하는데, 이를 Maven 생명주기(Maven Lifecycle)라고 한다.
Maven 생명주기는 크게 세 가지 단계로 나뉘며, 특정 단계를 수행하기 위해서는 이전단계를 마쳐야 한다. 각 단계는 메이븐에서 제공하는 플러그인이 설정된 목표(goal)를 수행하는 방식으로 동작한다.
1. default 생명주기
- Maven에서 가장 기본적인 생명주기로, 프로젝트 빌드와 배포를 담당한다.
- 역할
- validate: 프로젝트를 빌드하는데 필요한 모든 정보를 사용할 수 있는지 검토한다.
- compile: 소스 코드를 컴파일한다.
- test: 단위 테스트 프레임워크를 사용해 테스트를 수행한다.
- package: 컴파일된 코드와 리소스를 JAR등의 형식으로 패키징한다.
- install: 패키지를 로컬 저장소에 설치한다.
- deploy: 패키지를 원격 저장소에 배포한다.
2. clean 생명주기
- 프로젝트의 빌드 결과물을 제거하는 데 사용한다.
- 역할
- clean: 이전 빌드에서 생성된 파일과 디렉토리를 삭제한다.
3. site 생명주기
- 프로젝트 문서를 생성하고 웹 사이트를 빌드하는 데 사용한다.
- 역할
- site: 프로젝트 문서 사이트를 생성한다.
- site-deploy: 생성된 문서를 웹 서버에 배포한다.
생명주기 단계는 순차적으로 실행되며, 특정 단계에서 실행되는 목표는 고정되어 있습니다. 예를 들어, compile 단계에서는 compile 목표가 실행되고, test 단계에서는 test 목표가 실행됩니다. 또한, 상위 생명주기에서 하위 생명주기를 호출할 수 있습니다. 예를 들어, default 생명주기에서 clean 목표를 실행하여 빌드 전에 이전 결과물을 정리할 수 있습니다.
Maven 생명주기는 프로젝트 빌드를 표준화하고 관리하기 위한 강력한 도구로, Maven의 핵심 기능 중 하나입니다.
'spring > spring' 카테고리의 다른 글
[스프링 부트 핵심 가이드] Logback 설정 (0) | 2024.02.01 |
---|---|
[스프링 부트 핵심 가이드] HTTP 요청 메서드 받기 (0) | 2024.02.01 |
[Spring] @Transactional (0) | 2024.02.01 |
[Spring] 프로젝트 구조 알아보기 (0) | 2024.01.30 |
[스프링 부트 핵심 가이드] MSA, 스프링 부트 동작방식,레이어드 아키텍처 (0) | 2024.01.25 |