프로그래밍 노트/SPRING BOOT

[Spring Boot] 의존성 관리

깡냉쓰 2019. 7. 11. 22:46
728x90
반응형

2019/07/03 - [프로그래밍 노트/SPRING BOOT] - [Spring Boot] 스프링 부트 시작하기

의존성 관리

Spring Boot는 어떻게 수 많은 의존성을 갖고 왔을까?
우리는 pom.xml 의존성 설정에 version을 주지 않았는데 spring boot는 알아서 수 많은 의존성 lib를 갖고왔다.
이것은 의존성 관리 기능 때문인데 parent pom을 따라가다보면 spring-boot-dependencies 프로젝트가 존재하는데 이곳에서 spring version을 관리하고 있다. 우리는 spring-boot-dependencies에서 관리하는 라이브러리를 사용하게 된다.

우리가 spring boot 프로젝트를 생성하면 부모pom 으로 spring-boot-starter-parent.pom을 갖게된다.

spring-boot-starter-parent

그리고 spring-boot-starter-parent.pom은 부모pom 으로 spring-boot-dependencies.pom을 갖게된다.

<parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-dependencies</artifactid>
    <version>2.1.3.RELEASE</version>
    <relativepath>../../spring-boot-dependencies</relativepath>
</parent>

이 spring-boot-dependencies.pom에서 여러 라이브러리와 버전을 명시하고 있다.

  • Spring Boot 버전별로 지원하는 라이브러리 의존성 목록
  • Spring Boot 버전을 업그레이드하면 라이브러리 의존성도 모두 업그레이드

=> dependencyManagement 라는 태그안에 dependency가 정의되어 있는데, dependencyManagement는 나중에 maven쪽에 포스팅 하겠다.

spring-boot-dependencies

따라서 우리는 부모 pom에 미리 정의되어있는 의존성을 사용하게 되며 아래와 같은 장점을 갖을 수 있다.(무척 편리)

  • 관리해야할 의존성이 줄어듬
  • 의존성 버전 충돌을 피할 수 있음

그렇다면 버전을 바꾸고 싶으면 어떻게 할까?

Spring version을 바꾸고 싶다면 우리가 만든 spring boot 프로젝트의 pom.xml에 properties를 추가하면 일괄적으로 바꿀 수 있다. 단, parent pom의 properties이름과 동일해야 한다.

<properties>
    <spring.version>5.0.6.RELEASE</spring.version>
</properties>

properties를 덮어씌우면 변경할 수 있다.

728x90
반응형