TroubleShooting - gradle 의존성 exclude(spring-starter-logging)


이슈 내용

log4j, logback 로깅 라이브러리들의 보안 이슈 관련 버전 업데이트 및 제외가 필요함.

기본적으로 rhea, safespring-boot-starter-web을 비롯한 starter 의존성을 갖고 있고 해당 starter 의존성들이 spring-boot-stareter-logging 디펜던시를 갖고 있어 의존성 전이 효과로 slf4j, logback, log4j 관련 라이브러리들이 함께 classpath에 포함됨.


해결

1. 기존 의존성 제외 스크립트

rhea, safe root 모듈에 아래와 같이 spring-boot-starter-logging 모듈 제외 스크립트 삽입

확인해보니 root module에서는 정상적으로 해당 라이브러리가 제외되었지만 submodule들에서는 그대로 사용중.

submodule들이 spring-boot-starter-web 등의 디펜던시를 독립적으로 사용하기 때문.

이에 따라 모든 프로젝트에 적용을 위해 아래 위치에 스크립트 추가 적용

확인해보니 정상적으로 spring-boot-starter-logging 관련 전이 의존성들이 제거됨을 확인


2. 필요 의존성 명시 스크립트

spring-boot-starter-logging 모듈에서 제공하는 전이 의존성들을 사용하지 않기 때문에 명시적으로 의존성을 선언해야함. 아래 스크립트를 적용


결과

정상적으로 classpath명시한 버전들이 삽입됨을 확인. 최신 버전을 따라 의존성 관리를 하는 gradle 성격 상 다른 의존성에서 slf4j, logback을 사용했다 하더라도 그 중 최신 버전으로 적용됨


참고