본문 바로가기
Study/Java

[JAVA] Spring Boot - Standard Commons Logging discovery in action with spring-jcl:please remove commons-logging.jar from classpath in order to avoid potential conflicts

by 오늘만 사는 여자 2025. 3. 7.
728x90
반응형

Spring Boot에서는 spring-jcl을 통해 로깅을 관리하며, commons-logging.jar이 클래스패스에 포함되어 있으면 충돌이 발생할 수 있습니다. 이를 해결하는 방법은 다음과 같습니다.

1. commons-logging.jar 제거하기

commons-logging.jar이 직접 추가되어 있다면, 프로젝트에서 이를 제거해야 합니다.

  • Maven 프로젝트의 경우scope를 provided로 설정하여 빌드 시 포함되지 않도록 하거나, 직접 dependency를 제거합니다.
    xml
    복사편집
    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>
  • 만약 commons-logging이 다른 라이브러리의 의존성으로 포함된 경우, exclusions를 사용하여 제거할 수 있습니다.
  • xml
    복사편집
    <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <scope>provided</scope> </dependency>
  • Gradle 프로젝트의 경우
  • gradle
    복사편집
    configurations { all { exclude group: 'commons-logging', module: 'commons-logging' } }

2. Spring Boot Starter 사용 확인

Spring Boot는 기본적으로 spring-jcl을 사용하므로, commons-logging을 직접 추가할 필요가 없습니다.

다음과 같이 spring-boot-starter-logging이 포함되어 있는지 확인하세요.

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency>

3. 캐시 및 빌드 정리 후 다시 실행

라이브러리를 제거한 후, 프로젝트를 클린하고 다시 빌드하세요.

# Maven 프로젝트
mvn clean package
 
# Gradle 프로젝트
./gradlew clean build

4. 실제 클래스패스 확인

Maven 또는 Gradle의 dependency tree를 확인하여 commons-logging이 포함되어 있는지 검사합니다.

  • Maven
  •  
    mvn dependency:tree | grep commons-logging
  • Gradle
  •  
    ./gradlew dependencies --configuration runtimeClasspath | grep commons-logging

위 방법 중 하나로 commons-logging을 제거하면 충돌 없이 Spring Boot에서 로깅을 사용할 수 있습니

728x90
반응형

댓글