Java

[Java] Maven 라이브러리 Dependency 충돌 해결하기

메바동 2021. 11. 4. 16:44
728x90

dependency에서 exclusions에 해당 라이브러리 추가하기

 

웬만해서는 dependency가 충돌하는 일은 거의 없지만 종종 충돌이 발생할 수 있다.

이럴 경우

 

 

pom.xml에서 dependency를 추가하는 부분에 exclusions를 주면 해당 의존 라이브러리는 불러오지 않게 된다.

 

<dependency>
  <groupId>net.jsign</groupId>
  <artifactId>jsign-core</artifactId>
  <version>4.0</version>
  <exclusions>
    <exclusion>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcprov-jdk15on</artifactId>
    </exclusion>
  </exclusions>
</dependency>

 

해당 라이브러리가 불러오는 의존성 라이브러리의 경우

 

 

https://mvnrepository.com/

 

에서 해당 라이브러리를 검색한 후 사용하는 버전을 선택하면 "Compile Dependencies" 란에서 확인할 수 있다.

 

 

 

 

 

사실 이 포스팅에는 슬픈 사연이 있다.

 

회사에서 사용하는 프로젝트를 조금 더 사용하기 쉽게 만드려고 수정 중이었다.

리눅스 가상 머신에 새로운 환경을 만들어 놓고 테스트까지 마친 후 정상적으로 돌아가는 것을 확인하고 윈도우에서 실제 프로젝트에 적용시키려고 했었다.

 

그런데...

 

bcprov-jdk15on가 jdk에 있는 bcprov-jdk16on과 충돌을 일으켜 수정을 하려는데 아무리 생각해도 이상했었다.

리눅스 가상 머신에서는 bcprov-jdk16on가 깔려있지 않았는데...

 

생각해보니 내가 지금보다 더 지식이 없을 때 jre/lib/ext에 다른 프로젝트에서 사용하는 암호화 모듈과 bcprov-jdk16on을 jre/lib/ext에 넣어놨던 기억이 났다.

 

 

그래도 정리해 두면 언젠간 쓸 일이 있을 것 같아 포스팅을 작성하였다.

 
728x90