본문 바로가기

자바기초

자바 의존성 관련 - 메이븐과 의존성 관리도구

Maven

자바용 프로젝트 관리 도구

Java 기반 프로젝트의 라이프사이클 관리를 위한 빌드 도구

 

컴파일과 빌드를 동시에 수행, 테스트를 병행하거나, 서버 측 Deploy 자원을 관리할 수 있는 환경을 제공.

또한 라이브러리 관리 기능도 내포.

Java로 개발하다 보면 다양한 라이브러리를 필요로 하게 되는데, settings.xml 또는 pom.xml 파일에 필요한 라이브러리만 적으면 Maven이 알아서 다운받고 설치해주고 경로까지 지정해준다.

 

장점

1. 컴파일과 빌드 동시 수행 가능.

2. 서버의 Deploy 자원을 관리할 수 있는 환경을 제공.

3. 유지보수 측면에서 오픈소스 라이브러리, 프로젝트 등 관리가 용이 (pom.xml 파일을 통해 관리하기 때문)

4. IDE에 종속된 부분들 제거 가능.

5. Maven Profile 기능을 통해 배포 설정 파일을 관리 및 배포 파일 생성이 가능.

 

알기 쉽게 설명하자면, 프로젝트를 진행할 때, 필요한 라이브러리가 있으면, 그 라이브러리를 찾고, 추가하고, 사용한다.

그런데 프로젝트 규모가 크다면 프로젝트를 진행하는 개발자들의 수는 물론 사용되는 라이브러리의 수도 많아질 것이고, 그럴 때마다 모든 개발자들이 각각 필요한 라이브러리를 찾아야 한다면 상당히 번거로울 것이다.

이런 문제를 해결하기 위해 사용하는 것이 Maven. 

필요한 라이브러리를 특정 문서에 정의해 놓으면 네트워크를 통해서 라이브러리를 자동으로 다운로드하므로, 개발자들 간에 라이브러리를 공유할 필요 없이, 필요한 것을 특정 문서에 명시해 놓으면 네트워크를 통해 라이브러리를 쉽게 다운로드할 수 있는 것이다. Maven은 이 외에도 의존성 관리 기능을 가지고 있는데 프로젝트를 진행하는 와중에 우리가 쓰는 라이브러리의 최신 버전이 새로 나왔다면 그걸 누가 알려주지 않는 이상 우리가 알아차리기는 어려울 것이다. 그런데 그것을 Maven이 해준다.  그리고 우리가 사용하고 있는 라이브러리들도 재귀적으로 업데이트까지 해주는 장점이 있다.