더북(TheBook)

2.2.2 스타터의 전이적 의존성 오버라이드하기

스타터 의존성은 빌드에 있는 다른 의존성처럼 의존성일 뿐이다. 이는 빌드 도구로 전이적 의존성 버전을 선택적으로 오버라이드할 수 있고, 전이적 의존성들을 제외할 수 있으며, 스프링 부트 스타터가 포함하지 않는 라이브러리에 의존성을 확실하게 지정할 수 있다는 의미다.

예를 들어 스프링 부트 웹 스타터를 생각해 보자. 무엇보다도 스프링 부트 웹 스타터는 Jackson JSON 라이브러리에 전이적으로 의존한다. Jackson은 JSON 리소스를 생성하거나 소비하는 REST 서비스를 구축하는 데 유용한 라이브러리다. 스프링 부트로 전통 방식의 웹 애플리케이션을 개발할 때는 Jackson 라이브러리가 필요 없을 수도 있다. Jackson 라이브러리를 포함한다고 해서 문제가 되지는 않지만, 전이적 의존성에서 Jackson을 제외하면 빌드를 좀 더 가볍게 만들 수 있다.

그레이들을 사용한다면 다음과 같이 전이적 의존성을 제외할 수 있다.


compile('org.springframework.boot:spring-boot-starter-web') {
    exclude group: 'com.fasterxml.jackson.core'
}

메이븐에서는 <exclusions> 요소를 사용하여 전이적 의존성을 제외할 수 있다.

다음 <dependency>는 스프링 부트 웹 스타터에서 Jackson을 제외하려고 <exclusions>를 포함한다.


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
    </exclusions>
</dependency>

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