Nexacro

[Nexacro] Nexacro 17 SLF4J: Class path contains multiple SLF4J bindings 에러

도미노& 2022. 5. 27. 11:40

넥사크로 프로젝트 pom.xml 로 제공받은 것을 gradle로 변경하는 작업 중 발생한 에러.

 

▽ 추가한 gradle dependencies

implementation group: 'com.nexacro.uiadapter17.spring', name: 'uiadapter17-spring-core', version: '1.0.5-SNAPSHOT'
implementation group: 'com.nexacro.uiadapter17.spring', name: 'uiadapter17-spring-dataaccess', version: '1.0.5-SNAPSHOT'
implementation group: 'com.nexacro.uiadapter17.spring', name: 'uiadapter17-spring-excel', version: '1.0.5-SNAPSHOT'

 

 

▽ 발생한 에러

 

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/(모자이크)/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.17.1/84692d456bcce689355d33d68167875e486954dd/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/(모자이크)/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.6/b09efa852337fa0dd9859614389eec58dc287116/logback-classic-1.2.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]

 

 

gradle을 한 줄씩 지워가며 확인한 결과 nexacro에서 주입한 jar는 logback-classic이었다.

gradle에 추가한 tobesoft repository 주소에서 pom.xml을 확인해서 예외 처리를 별도로 해주었다.

 

 

▽ 해결한 소스 코드

참고로 각각 exclude 한 이유는 전역적으로 예외처리하는 것보단

필요한 부분에만 하는 게 안정성 면에서 좋을 것 같다고 판단했기 때문이다.

implementation ('com.nexacro.uiadapter17.spring:uiadapter17-spring-core:1.0.5-SNAPSHOT') {
	exclude group: 'ch.qos.logback', module: 'logback-classic'
}
implementation ('com.nexacro.uiadapter17.spring:uiadapter17-spring-dataaccess:1.0.5-SNAPSHOT') {
	exclude group: 'ch.qos.logback', module: 'logback-classic'
}
implementation ('com.nexacro.uiadapter17.spring:uiadapter17-spring-excel:1.0.5-SNAPSHOT') {
	exclude group: 'ch.qos.logback', module: 'logback-classic'
}