스프링 부트(핵심 원리와 활용)

Ch03. 스프링 부트 스타터와 라이브러리 관리 - 스프링 부트 라이브러리 버전 관리

webmaster 2023. 3. 7. 18:14
728x90

스프링 부트는 개발자 대신에 수많은 라이브러리의 버전을 직접 관리해 준다.
이제 개발자는 원하는 라이브러리만 고르고 라이브러리의 버전은 생략해도 된다. 그러면 스프링 부트가 부트 버전에 맞춘 최적화된 라이브러리 버전을 선택해 준다..

버전 관리 기능을 사용하려면 io.spring.dependency-management 플러그인을 사용해야 한다

build.gradle - plugins 수정

plugins {
    id 'org.springframework.boot' version '3.0.2'
    id 'io.spring.dependency-management' version '1.1.0'
    id 'java'
}

build.gradle - dependencies 수정

dependencies {
    //스프링 웹, MVC
    implementation 'org.springframework:spring-webmvc'
    //내장 톰캣
    implementation 'org.apache.tomcat.embed:tomcat-embed-core'
    //JSON 처리
    implementation 'com.fasterxml.jackson.core:jackson-databind'
    //스프링 부트 관련
    implementation 'org.springframework.boot:spring-boot'
    implementation 'org.springframework.boot:spring-boot-autoconfigure'
    //LOG 관련
    implementation 'ch.qos.logback:logback-classic'
    implementation 'org.apache.logging.log4j:log4j-to-slf4j'
    implementation 'org.slf4j:jul-to-slf4j'
    //YML 관련
    implementation 'org.yaml:snakeyaml'
}
  • 라이브러리를 보면 버전 정보가 모두 제거되었다.

dependency-management 버전 관리

  • io.spring.dependency-management 플러그인을 사용하면 spring-boot-dependencies 에 있는 다음 bom 정보를 참고한다
    • 참고로 spring-boot-dependencies 는 스프링 부트 gradle 플러그인에서 사용하기 때문에 개발자의 눈에 의존관계로 보이지는 않는다.
  • 해당 build.gradle 문서안에 보면 bom 이라는 항목이 있다.
  • 각각의 라이브러리에 대한 버전이 명시되어 있는 것을 확인할 수 있다.
  • 물론 현재 프로젝트에서 지정한 스프링 부트 버전을 참고한다.
    • id 'org.springframework.boot' version '3.0.2' 여기에 저징된 스프링 부트 버전 참고
    • 스프링 부트의 버전을 변경해보면 나머지 라이브러리들의 버전도 변하는 것을 확인할 수 있다.

참고 - 스프링 부트가 관리하는 외부 라이브러리 버전을 확인하는 방법

https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html#appendix.dependency-versions.coordinates 

 

Dependency Versions

 

docs.spring.io

참고 - 스프링 부트가 관리하지 않는 라이브러리
스프링 부트가 관리하지 않는 외부 라이브러리도 있다. 특히 아직 잘 알려지지 않거나 대중적이지 않은 경우가 그러한데, 이때는 라이브러리의 버전을 직접 적어주어야 한다

728x90