개발/Spring

[Spring] Spring Boot gradle build 에러 - Execution failed for task ':compileQuerydsl'. > ... > Could not find com.sun.mail:javax.mail:. 해결 방법

zz132456zz 2022. 8. 14. 19:57
728x90

spring boot gradle 프로젝트를 aws ec2 환경에서 배포하기 위해 빌드를 했는데 다음과 같은 에러가 나왔습니다.

 

* What went wrong:
Execution failed for task ':compileQuerydsl'.
> Could not resolve all files for configuration ':querydsl'.
   > Could not find com.sun.mail:javax.mail:.
     Required by:
         project :

 

Exception을 포함한 자세한 에러 내용은 다음과 같습니다.

 

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileQuerydsl'.

...

Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':querydsl'.

...
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.sun.mail:javax.mail:.
Required by:
    project :

 

총 100줄이 넘었지만 중요한 3줄만 남겼습니다.

 

위에서부터 :compileQuerydsl, :querydsl을 보고 querydsl 쪽이 문제가 있었나 싶을 수 있지만 가장 마지막 줄에 javax.mail이 문제의 원인입니다.

 

build.gradle 파일의 의존성을 추가하는 부분에 javax.mail의 버전이 명시되어있지 않다면 위와 같이 ModuleVersionNotFoundException 에러가 발생합니다. 메일을 사용하기 위해 로컬에서 STS를 이용해서 테스트할 때는 문제없이 잘 실행되었지만 ec2환경에서 배포를 위해 build를 할 때는 버전이 있어야 합니다. 그래서 maven repository에서 가장 최근 버전을 살펴보니 1.6.2 버전이라서 build.gradle 파일에서 아래와 같이 변경하면 해결할 수 있습니다.

 

implementation 'com.sun.mail:javax.mail -> implementation 'com.sun.mail:javax.mail:1.6.2'

 

 

 

 

 

 

 

 

 

 

 

728x90