스프링 부트와 AWS로 혼자 구현하는 웹서비스 8장을 공부하면서 EC2에 깃허브 프로젝크 클론을 진행하고 테스트를 실행하는 도중
FAILURE: Build failed with an exception.
Execution failed for task ':compileJava'.에러가 발생했다.
원인
프로젝트에 사용하는 버전과 실제 자바 버전이 맞지 않아서 발생했다.
책에서는 jdk 1.8을 사용하는 전제로 설명했고, 나는 jdk11을 사용하는 상황이었는데, build.gradle에 명시한 자바 버전을 책에 맞춰 작성해두어서 발생했다.
해결 방법
build.gradle에서 명시한 자바 버전이 환경변수 JAVA_HOME이 가리키는 자바 버전과 일치하는지 확인
gradlew는 JAVA_HOME을 보고 자바가상머신을 사용하기 때문!
내 경우에는 build.gradle을 보니 당연히 11로 맞춰놓은 줄 알았는데, jdk1.8을 사용하는 책과 같이 1.8로 써두었다.
진작에 11로 썼어야 했는데, 왜 1.8로 써서 놔둔건지 다시 생각해도 과거의 내가 의문이다...
이 때문에 에러가 발생한 것 같다..
추가 원인
이렇게 하고 다시 putty에서 테스트를 진행하는 데 같은 오류가 발생했다.
버전에 대해 문제되는 부분은 없는 거 같아 다시 구글링해보니 롬북으로 인한 오류일 수 있다고 한다.
참고 글
gradle project 배포 시 compiler error 해결 방법 (tistory.com)
gradle project 배포 시 compiler error 해결 방법
gradle project 배포 시 compiler error 해결 방법 gradle 프로젝트 배포 시 Gradle tasks에서 compile 에러가 발생하는 경우가 있습니다. 에러 코드 전체 에러 코드는 아래의 '더보기'를 클릭하세요! 더보기 org.gr
aljjabaegi.tistory.com
인텔리제이에서는
implementation ('org.projectlombok:lombok')
추가해서 롬북을 사용했는데, 배포시에는 컴파일 단계에서 롬북에서 정의한 어노테이션 코드가 컴파일되지 않아 문제가 발생한다고 한다.
롬북에서 정의한 어노테이션 코드가 컴파일 되도록 dependencies에 아래 한 줄을 추가한다.
annotationProcessor ('org.projectlombok:lombok')
그 뒤 다시 putty에서 ./gradlew test를 해보면 이제 테스트가 돌아가고 이 문제는 해결된다!!!
근데 이제 85%까지 진행되다가 테스트 폴더에 있는 테스트들이 실패하면서 테스트가 실패된다...
그리고 다른 에러가 떴다... 새로운 에러를 해결하러 가야겠다...
댓글