※ 메이븐 저장소
- 중앙 저장소 : 오픈소스 라이브러리, 메이븐 플러그인, 메이븐 아키타입을 관리하는 저장소. 메이븐 2.0의 중앙 저장소 URL은 http://repo1.maven.org/maven2/ 이다. 중앙 저장소는 원격 저장소 중의 하나이다. 중앙 저장소는 개발자가 임의로 라이브러리르 배포할 수 없다.
- 원격 저장소 : 메이븐 기반으로 프로젝트를 진행하는 경우 프로젝트에 필요한 모든라이브러리가 메이븐 중앙 저장소에 있는 것은 아니다. 이처럼 중앙 저장소에 없는 라이브러리를 한 곳에 모아두기 위하여 별도의 메이븐 저장소를 설치해 관리하는 것이 가능하다. 원격 저장소는 회사내에서만 사용하기 위한 용도의 사내 원격 저장소와 스프링소스에서 제공하는 메이븐 저장소처럼 외부에 위치하는 외부(공개) 원격 저장소가 있다.
- 로커 저장소 : 로컬 저장소는 메이븐을 빌드할 때 다운로드하는 라이브러리, 플러그인을 관리하는 개발자 pc의 저장소이다. 기본 로컬 저장소는 USER_HOME/.m2/repository 디렉토리이다.
※ http://mvnrepository.com 메이븐 중앙저장소에서 관리하는 라이브러리를 검색할 수 있도록 지원한다.
※ 의존 라이브러리 버전
메이븐은 의존 관계에 있는 라이브러리의 버전을 효율적으로 관리할 수 있도록 몇 가지 옵션을 제공한다.
(,) : 해당 버전을 제외
[,] : 해당 버전을 포함
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>[3.8, 4.8)</version>
</dependency>
JUnit 라이브러리 버전 중에 4.8보다 작으면서, 3.8보다 크거나 같은 버전중에서 가장 최신 버전과 의존 관계를 가진다. JUnit 라이브러리는 4.8보다 작은 버전 중 최신 버전인 4.7버전과 의존 관계를 갖도록 설정된다.
라이브러리 버전이 변경될 때마다 버전을 변경하는 것이 불편할 수 있다. 버전 번호를 변경하지 않고 가장 최신 버전의 라이브러리와 의존관계를 갖도록 설정하는 방법이 있다.
<version>LATEST</version> 또는 <version>RELEASE</version>
하지만, 라이브러리가 최신버전이라 기능이 비정상적으로 동작할 가능성이 있기 때문에 좋은 선택은 아니다.