정보

[에러 해결] cannot resolve class or package 'cj'

개발자성장기 2024. 5. 3. 17:03
반응형

 

❗️ 에러 발생

 

mysql 세팅을 하는데 계속 에러가 발생했다. 

cannot resolve class or package 'cj' dependencies도 제대로 설정했는데 왜 안될까??? 

계속 찾아보았다.  

 

dependencies {
    runtimeOnly 'com.mysql:mysql-connector-java'
}

 

🚀 해결법

 

그러다 발견했다.  

 

바로 네이밍이 변경되었다.... 하..... 이러니 안되징

dependencies {
    runtimeOnly 'com.mysql:mysql-connector-j'
}

 

 

❓ 원인 탐색

 

나는  스프링 부트 3.2.5를 사용한다.  해당 에러는 3.1.0 버전 부터 발생한다. 즉 3.1.0 미만 버전에서는  `mysql-connector-java`로 해도 정상적으로 동작한다는 소리이다.  

 

실제로 스프링 부트 3.0.0 의 Dependency Versions 를 가보면 mysql은 아래와 같이 `mysql-connector-java`로 되어있다.

 

하지만 스프링 부터 3.1.0 부터는 `mysql-connector-java` dependency 자체가 없다.  즉 `mysql-connector-j`만 사용할 수 있다.  

 

 

 

아래 스크린샷처럼  8.0.31 버전 부터  `mysql-connector-j`로 변경되었고 이전 네이밍도 같이 지원하다가 8.1.0 부터 지원을 끊어서 이전 네이밍은 사용하면 에러가 발생했던 것이었다.  

 


📌 reference

https://docs.spring.io/spring-boot/docs/3.1.0/reference/html/dependency-versions.html#appendix.dependency-versions

https://docs.spring.io/spring-boot/docs/3.0.0/reference/html/dependency-versions.html#appendix.dependency-versions

https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-31.html

https://shanepark.tistory.com/466

 

 

반응형