더북(TheBook)

5.2.1 기본 의존성 버전 오버라이드하기

스프링 부트는 프로퍼티 파일에서 기본 의존성 버전을 오버라이드하려고 @Grab 애너테이션과 함께 사용할 수 있는 새로운 @GrabMetadata 애너테이션을 제공한다.

@GrabMetadata 애너테이션을 사용하려면 그루비 스크립트 파일 중 하나에 이 애너테이션을 추가하고 프로퍼티 파일 위치와 오버라이드할 의존성 메타데이터를 제공해야 한다.


@GrabMetadata("com.myorg:custom-versions:1.0.0")

이 코드는 com/myorg 디렉터리에 있는 메이븐 리포지토리에서 custom-versions.properties 프로퍼티 파일을 로드한다. 프로퍼티 파일의 각 줄에서 반드시 그룹 ID와 모듈 ID는 키로 가져야 하고, 버전은 값으로 가져야 한다. 예를 들어 H2의 기본 버전을 1.4.186으로 오버라이드하고 싶다면 @GrabMetadata 애너테이션에 지정한 프로퍼티 파일에 다음을 추가한다.


com.h2database:h2=1.4.186

 

Tip 스프링 IO 플랫폼 사용하기

@GrabMetadata 애너테이션을 사용하는 이유는 스프링 IO 플랫폼(http://platform.spring.io/platform/)에 정의된 의존성 버전을 사용하기 위해서다. 스프링 IO 플랫폼은 스프링과 다른 라이브러리의 어떤 버전이 서로 잘 작동하는지 모르는 사용자에게 엄선된 의존성과 버전을 제공한다. 스프링 IO 플랫폼이 제공하는 의존성과 버전은 스프링 부트의 잘 알려진 의존성 라이브러리 집합의 상위 집합이며, 스프링 애플리케이션에서 종종 사용하는 서드파티 라이브러리도 포함한다.

스프링 IO 플랫폼에서 스프링 부트 CLI 애플리케이션을 빌드하고 싶다면 그루비 스크립트 중 하나에 다음 @GrabMetadata 애너테이션을 선언한다.


@GrabMetadata('io.spring.platform:platform-versions:1.0.4.RELEASE')

이 코드는 CLI의 기본 의존성 버전을 스프링 IO 플랫폼에서 지정한 버전으로 오버라이드한다.

 

이쯤에서 Grape가 의존성을 어디서 가져오는지, 그 위치를 구성할 수 있는지 궁금할 것이다. 이제 Grape가 의존성을 가져오는 리포지토리를 관리하는 방법을 알아보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.