Programming Language/JAVA
Maven: NoSuchMethodError. Guava 라이브러리 충돌
박스님
2020. 1. 10. 18:11
반응형
# 개요
maven을 통한 개발을 진행하는 도중 아래와 같은 에러로그가 발생하였습니다.
java.lang.NoSuchMethodError: com.google.common.io.ByteStreams.exhaust(Ljava/io/InputStream;)J
알아보니 위 패키지는 guava에 포함되는 패키지이고 라이브러리 충돌로 인해 자주 발생하는 이슈였습니다.
java.lang.NoSuchMethodError: com.google.common.io.Closeables.closeQuietly(Ljava/io/Closeable;)V
I am new to selenium.I am getting some issues while using Selenium WebDriver. I want to open website using Selenium WebDriver like www.filpkart.com My Code package com.screen; import org.openqa.
stackoverflow.com
# 분석
각종 라이브러리의 종속성을 확인하기 위하여 아래 maven 명령어를 실행합니다.
mvn dependency:tree
명령어 실행 결과입니다.
[INFO] +- org.apache.hadoop:hadoop-common:jar:2.7.2:compile
[INFO] | +- com.google.guava:guava:jar:28.1-android:compile
[INFO] | | +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] | | +- org.checkerframework:checker-compat-qual:jar:2.5.5:compile
[INFO] | | +- com.google.errorprone:error_prone_annotations:jar:2.3.2:compile
[INFO] | | +- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] | | \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.18:compile
[INFO] | +- org.apache.commons:commons-math3:jar:3.1.1:compile
[INFO] | +- commons-net:commons-net:jar:3.1:compile
[INFO] | +- commons-collections:commons-collections:jar:3.2.2:compile
.....
hadoop-common 라이브러리 밑에 종속되는 guava가 생성되어 있었습니다. 이로 인해 원하는 버전의 guava 라이브러리가 생성되지 않았기 때문에 발생한 이슈였습니다.
참고
아래 명령어를 통해서도 충돌난 라이브러리들을 확인할 수 있습니다.
mvn dependency:tree -Dverbose
# 조치
hadoop-common 라이브러리에 guava를 exclusion을 해줌으로서 해결하였습니다.
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
반응형