728x90

이 에러가 발생한 원인은 logback, slf4j 라이브러리가 충돌하면서 cast(* 한 타입의 값을 다른 타입의 값으로 변환)할 수 다는 에러가 발생한 것이다.

필자는 Maven에서 Gradle로 마이그레이션 하는 과정에서 해당 에러가 발생하였는데 정말 간단하게 해결하였다.

 

변겅 전 Maven 문법

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>2.6.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>

gradle init 명령어로 maven을 자동으로 gradle로 변환시켜주는데 exclusion 태그는 적용되지 않았다.

 

변경 후 Gradle 문법

// 실패(exclude를 안하면서 에러 발생)
implementation 'com.zaxxer:HikariCP:2.6.2'


// 성공(maven과 동일하게 exclude를 추가해야한다.)
implementation('com.zaxxer:HikariCP:2.6.2') {
    exclude group: 'org.slf4j', module: 'slf4j-api'
    exclude group: 'org.slf4j', module: 'slf4j-log4j12'
}

성공 사례와 같이 exclude 문법을 추가하여 maven과 동일하게 작성해야 해결할 수 있다.

728x90
TOP