Maven 이란

2022. 8. 29. 17:11기타

메이븐이란 빌드 자동화 도구이자, 소프트웨어 이해 도구이다.

아파치에서 개발하고 있는 소프트웨어 프로젝트 관리 툴이다.

주요기능

  • 프로젝트 라이브러리 관리
  • 프로젝트 정보의 전달
  • 프로젝트 작성부터 컴파일, 테스트, 배치 등의 테스트 지원

장점

  • 의존성 관리
  • 의존성 자동 업데이트
  • 저장소를 통한 라이브러리 일괄 관리
  • pom.xml 설정 + mvn build
  • 동시에 다수의 프로젝트를 다룰 수 있는 메커니즘

단점

  • pom.xml 파일 관리 : 파일이 길고 장황해진다.

메이븐 저장소 구성

  • 중앙 저장소
    • 개발자가 임의로 라이브러리 배포가 불가능함
  • 원격 저장소
    • 회사, 재단에서 운영, 관리하는 저장소
  • 로컬 저장소
    • 개발자의 PC 저장소

의존성 정보 scope 설명

  • compile : 기본 scope, 컴파일 및 배포할 때 같이 제공하는 라이브러리
  • provided : 컴파일 시에는 사용되지 않지만 실행 환경에서 사용되는 라이브러리
  • test : JUnit 같이 테스트 시 사용
  • system : provided와 비슷, 직접 jar 파일을 제공해야 한다.
  • import : 다른 pom 설정 파일에 정의되어 있는 의존 관계 설정을 현재 프로젝트로 가져온다.

빌드 (Build)

자바 코드를 실제로 사용할 수 있게 정리하는 과정

compile, test, package, install, deploy 등이 있다.