[Spring] Maven & pom.xml

WOOK JONG KIM·2022년 10월 25일
0
post-thumbnail

pom.xml(project Object Model)

메이븐의 기능을 사용하기 위해 작성하는 파일

이 파일에서 프로젝트, 의존성 라이브러리, 빌드 등의 정보 및 해당 프로젝트를 관리하는데 필요한 내용 기술

요새는 Gradle로 많이 전환하는 추세

빌드 관리 도구

JVM이나 WAS프로젝트를 인식하고 실행할 수 있게 우리가 작성한 소스코드와 프로젝트에 사용된 파일들(.xml, .jar, .properties)를 빌드하는 도구

개발의 규모가 커질수록 관리해야 할 라이브러리가 많아지고 라이브러리 간 버전 호환성을 체크해야 하는데, 빌드 관리 도구 사용 시 이러한 문제를 해결

Maven

자바 기반의 프로젝트를 빌드하고 관리하는데 사용하는 도구

pom.xml 파일에 필요한 라이브러리를 추가하면 해당 라이브러리에 필요한 라이브러리까지 함께 다운로드 하여 관리

기능

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

생명 주기

메이븐 생명주기에는 크게 Default LifeCycle, Clean LifeCycle, Site LifeCycle 등이 있다.

위에 보이는 특정 단계를 수행하기 위해서는 이전 단계 처리해야함

Default LifeCycle:
validate -> compile -> test -> package -> verify -> install - >deploy

Clean LifeCycle:
clean

Site Lifecycle:
site -> site-deploy

각 단계는 메이븐에서 제공하는 플러그인이 설정된 goal을 수행하는 방식으로 동작

  1. clean : 이전 빌드가 생성한 모든 파일 제거
  2. validate : 프로젝트를 빌드하는데 필요한 모든 정보를 사용할 수 있는지 검토
  3. test : 단위 테스트 프레임워크를 사용해 테스트 실행
  4. package : 컴파일한 코드를 가져와서 JAR등의 형식으로 패키징 수행
  5. verify : 패키지가 유효하며 일정 기준을 충족하는 확인
  6. install : 프로젝트를 사용하는데 필요한 패키지를 로컬 저장소에 저장
  7. deploy : 프로젝트를 통합 또는 릴리스 환경에서 다른 곳에 공유하기 위해 원격 저장소에 패키지를 복사
  8. site : 메이븐의 설정 파일 정보를 기반으로 프로젝트 문서 사이트 생성
  9. site-deploy : 생성된 사이트 문서를 웹 서버에 배포
profile
Journey for Backend Developer

0개의 댓글