Maven의 pom.xml

GaEun Kim·2023년 6월 3일
0

pom.xml(Project Object Model) 이란?

pom.xml 파일은 메이븐의 기능을 사용하기 위해 작성하는 파일. 이 파일에는 프로젝트, 의존성 라이브러리, 빌드 등의 정보 및 해당 프로젝트를 관리하는 데 필요한 내용이 기술돼 있음.

빌드 관리 도구

빌드 관리 도구는 JVM이나 WAS가 프로젝트를 인식하고 실행할 수 있게 우리가 작성한 소스코드와 프로젝트에 사용된 파일들 (.xml, .jar, .properties)을 빌드하는 도구. 개발 규모가 커질수록 관리 할 라이브러리가 많아지고 라이브러리 간 버전 호환성을 체크해야 하는 어려움이 발생하는데, 빌드 관리 도구를 이용하면 이 같은 문제를 해결할 수 있다.

MAVEN(메이븐)

아파치 메이븐은 자바 기반의 프로젝트를 빌드하고 관리하는 데 사용하는 도구.
초창기 자바 프로젝트의 대표적 관리 도구였던 Ant를 대체하기 위해 개발됨.
메이븐의 가장 큰 특징은 pom.xml 파일에 필요한 라이브러리를 추가하면 해당 라이브러리에 필요한 라이브러리까지 함께 내려받아 관리한다는 것이다.

메이븐의 대표 기능

  • 프로젝트 관리 : 프로젝트 버전과 아티팩트를 관리
  • 빌드 및 패키징 : 의존성을 관리하고 설정된 패키지 형식으로 빌드를 수행
  • 테스트 : 빌드를 수행하기 전에 단위 테스트를 통해 작성된 애플리케이션 코드의 정상 동작 여부를 확인
  • 배포 : 빌드가 완료된 패키지를 원격 저장소에 배포

메이븐의 생명주기

메이븐의 기능은 생명주기 순서에 따라 관리되고 동작한다. 인텔리제이 IDEA에서 생성한 프로젝트인 경우 인텔리제이 IDEA에서 우측에 있는 'Maven' 탭을 클릭하면 메이븐의 생명주기를 확인할 수 있다.

메이븐의 생명주기는 크게 기본 생명주기(Default Lifecycle), 클린 생명주기(Clean Lifecycle), 사이트 생명주기(Site Lifecycle)의 3가지로 구분.
각 생명주기에는 단계(phase)가 존재하며, 특정 단계를 수행하기 위해서는 이전 단계를 마쳐야 한다.

출처 : https://medium.com/@yetanothersoftwareengineer/maven-lifecycle-phases-plugins-and-goals-25d8e33fa22

각 단계는 메이븐에서 제공하는 플러그인이 설정된 목표(goal)를 수행하는 방식으로 동작. 각 단계마다 세부 단계들이 존재. 메이븐의 생명주기 단계는 순차적으로 실행된다.

기본 생명주기 (Default Lifecycle)

  • validate : 프로젝트를 빌드하는 데 필요한 모든 정보를 사용할 수 있는지 검토
  • compile : 프로젝트의 소스코드를 컴파일
  • test : 단위 테스트 프레임워크를 사용해 테스트를 실행
  • package : 컴파일한 코드를 가져와서 JAR 등의 형식으로 패키징을 수행
  • integration-test : 통합 테스트를 실행할 수 있는 환경에 필요한 경우 패키지를 처리하고 배포
  • verify : 패키지가 유효하며 일정 기준을 충족하는지 확인
  • install : 프로젝트를 사용하는 데 필요한 패키지를 로컬 저장소에 설치
  • deploy : 프로젝트를 통합 또는 릴리스 환경에서 다른 곳에 공유하기 위해 원격 저장소에 패키지를 복사

클린 생명주기 (Clean Lifecycle)

  • clean : 이전 빌드가 생성한 모든 파일을 제거

사이트 생명주기 (Site Lifecycle)

  • site : 메이븐의 설정 파일 정보를 기반으로 프로젝트의 문서 사이트를 생성
  • site-deploy : 생성된 사이트 문서를 웹 서버에 배포

메이븐 생명주기에 대해 더 자세하게 알고 싶다면, https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference 에서 확인할 수 있다.

profile
꼬마개발자

0개의 댓글

관련 채용 정보