반응형
메이븐 의존 라이브러리 관리
메이븐 의존관리는 <dependencies/> 태그로 관리되며, < dependencies/> 아래에는 여러개의 < dependency/>가 존재한다.
아래는 Junit 3.8.1 버전과 의존관계가 있다고 pom.xml에 설정한 것이다.
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
이 dependency를 설정한 후의 과정은 아래와 같다.
- 메이븐 중앙 저장소에 JUnit 3.8.1 버전이 있는지 확인 하고 버전이 있다면 groupId/artifactId/version에 있는 ${artifactId}-${version}.jar 파일을 다운로드 한다.
- USER_HOME/.m2/repository 디렉토리에 junit 라이브러리 파일을 다운로드 받는다. (window 기준)
- USER_HOME/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
만약 Junit 버전이 업그레이드되어 버전을 변경하고 싶다면 pom.xml의 버전 번호만 변경하면 된다.
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
로컬 저장소에 4.9 버전이 없으므로 빌드를 하는 과정에서 Junit 4.9버전을 다운로드 한다. (이미 존재한다면 로컬 저장소에 있는 Junit 4.9를 사용하게된다.)
https://repo.maven.apache.org/maven2/junit/junit/ 에 들어가면 junit 지원하는 버전 정보를 볼 수 있다.
의존 라이브러리 버전
메이븐은 라이브러리 버전의 효율적 관리를 위해 몇가지 옵션을 제공한다.
버전의 범위를 지정할 수 있는데, 형식은 아래와 같다.
- (,) : 해당 버전을 제외
- [,] : 해당 버전을 포함
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>[3.8,4.8)</version>
</dependency>
Junit 라이브러리 버전중에 4.8보다 작으면서, 3.8보다 크거나 같은 버전 중에 가장 최신 버전과 의존관계를 갖는다. (4.7)
라이브러리의 버전이 변경될 때마다 최신 버전을 적용하고 싶으면, 아래와 같이 사용할 수 있다. (pom.xml의 version을 계속 수정하지 않아도 된다.)
<version>LATEST</version> 또는
<version>RELEASE</version>
(하지만 자동으로 변경된다면 이전에 정상적으로 동작했던 기능이 작동하지 않을 가능성이 있기 때문에 좋은 선택은 아님)
반응형
'프로그래밍 노트 > 빌드도구' 카테고리의 다른 글
[Maven] 메이븐 의존성 전이 (0) | 2019.03.31 |
---|---|
[Maven] 메이븐 의존 라이브러리 적용 스코프 (0) | 2019.03.31 |
[Maven] 메이븐 저장소 (0) | 2019.03.31 |
[Maven] 메이븐 기본 페이즈와 플러그인_2(테스트, 패키징) (0) | 2019.03.31 |
[Maven] 메이븐 기본 페이즈와 플러그인_1(컴파일) (0) | 2019.03.28 |