Springboot 프로젝트를 진행하다보면, 의존성 주입을 하게 됩니다.
Gradle을 Build로 사용할 경우를 예로 들어봅니다.

문제 상황
MySQL 을 연결하고자 mysql Connector 의존성을 주입 하였습니다.
bundle.gradle 파일을 열고 dependencies 부분에 아래와 같이 책/강좌에 나오는데로 입력했습니다.

프로젝트를 실행 하면, 아래와 같이 mysql-connector-java 를 찾지 못하고 에러가 발생합니다.

해결방법
build.gradle 의 의존성 주입시 주의 해야할 부분이 있습니다.
- 의존성 범위 변경 : complieOnly 가 아니라, implementation 으로 변경합니다.
compileOnly 와 implementation 은 어떤 차이 점이 있을까요? compileOnly는 말 그대로 의존성을 complie 시점에만 주입하고, implementation은 compile 및 runtime에도 주입을 한다는 뜻입니다.
MySQL connector 는 런 타임(run-time)에도 필요하기 때문에 범위를 변경합니다. - 명시적으로 버전을 지정 : 버전 정보를 정확하게 입력합니다.
mysql-connector-java 가 아니라, 최신 버전을 적어서 버전을 명확하게 합니다. mysql-connector-java:8.0.28
명시적으로 버전을 정하기 때문에 이후 의존성 주입 부분이 최신 버전과 충돌이 생기기 않을것 같습니다.
항상 최신 버전을 주입하면, 과거 버전을 사용하도록 된 소스는 에러를 발생 할 수 있습니다.

'Problem Solving' 카테고리의 다른 글
| Synology Video Station 비디오정보 가져오기 (TMDB 활용) (0) | 2022.11.27 |
|---|