## 상황 - 서비스 요구사항에 의해 특정 버전의 라이브러리를 꼭 사용해야 함 - ex) `implementation "org.elasticsearch:elasticsearch:6.5.4"` - 또한 프로젝트 내에선 편의를 위해 `io.spring.dependency-management` 도 같이 사용하는 중 - ex) `id "io.spring.dependency-management" version "1.0.12.RELEASE"` - 하지만 `gradle dependencies` 또는 빌드된 jar 를 열어보면 의도하지 않았던 다른 버전의 라이브러리가 대신 들어가 있음 - 아래 사진은 6.5.4 를 넣었으나 실제론 7.12.1 로 업데이트 되서 포함된 경우 -  <br> ## 원인 - `io.spring.dependency-management` 내부적으로 `build.gradle` (또는 `pom.xml`) 를 포함하고 있음 - ex) https://github.com/spring-projects/spring-boot/blob/v2.5.14/spring-boot-project/spring-boot-dependencies/build.gradle - 이 때 빌드 시 상황에 따라 유저가 명시적으로 지정한 버전(6.5.4) 대신 자신이 가지고 있던 버전(7.12.1)을 사용 - (어떤 상황에서 발생하는지는 추가 리서치 필요) <br> ## 해결 - build.gradle 의 ext 에 명시적으로 버전 set - ````groovy buildscript { ext { set('elasticsearch.version', '6.5.4') // 추가 ... } } ```` -  <br> ## 참고 - https://stackoverflow.com/a/52449830/7110084