본문 바로가기
BackEnd/Spring-boot

[EC2] 배포 환경에서 Gradle Error - "Could not find or load main class {클래스이름}" 에러

by Chaedie 2023. 7. 27.
728x90

에러 조건

  • ec2 Amazon 2023 linux
  • java 11
  • spring boot 2.7
  • rds mariadb 10.6

에러 메시지, 해석

  • "Could not find or load main class {클래스이름} " 이런류
  • 검색하다보면 Intellij - Gradle 간 환경에서 자주 발생하는 이슈라고 한다.
  • 해결한 사람들을 보면 아래 케이스로 나뉜다.
    • Intellij 세팅을 변경하거나 (폴더 이름 한글이라 발생한 케이스)
    • gradle 세팅을 바꿔주거나
    • gradle 폴더에 있는 'gradle-wrapper.jar'를 직접 밀어주거나
  • 뭔가 나랑은 안맞는 케이스인것 같아서 build.gradle에 대해 검색해보았다. 그리고 아래 도움된 링크에서 힌트를 얻어 build.gradle을 수정했다.
plugins {
    id 'java'
    id 'org.springframework.boot' version '2.7.14'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'

    // 자동 생성되지 않는 부분 (배포 환경 트러블 슈팅을 위해 추가)
    id 'application' 
}

// 자동 생성되지 않는 부분 (배포 환경 트러블 슈팅을 위해 추가)
application {
    mainClass = 'chaedie.awsspring.AwsSpringApplication'
}
  • 위 코드에서 주석으로 표시된 application plugin 추가 -> application.mainClass 정보 추가를 통해 문제를 해결했다.
  • 어찌어찌 해결하긴 했는데 이게 진짜 원인인지 아닌지는 모르겠다.
  • 그러나 위 방법대로 application plugin을 추가하고, mainClass를 지정해주니 배포환경에서 deploy 스크립트 실행 시 나오는 로깅 자체가 달라지더라 ㅎㅎㅎㅎㅎㅎㅎㅎ 굳
  • 그리고 연이어 발생하는 RDS에서의 Table 문제는 ddl 수정으로 간단히 해결하고 배포에 성공했다. 스프링부트 첫 배포 성공 ㅎㅎㅎ

도움된 링크

댓글