[My Project]/[Error Note]
[Error Note] Spring - no main manifest attribute 에러
북방바다코끼리표범
2023. 11. 11. 22:37
무중단 배포를 하는 도중에 jar 파일이 실행되지 않아서 계속 heath 체크가 실패하는 문제가 발생했을시
원인을 찾고자 해당 jar 실행 로그가 들어있는 파일을 열어 봤더니 아래 로그만 덩그러니 있었음
no main manifest attribute, in /home/ec2-user/app/deploy/mall-1.0.1-SNAPSHOT-20230927114334-plain.jar
이 에러는 jar파일에서 애플리케이션이 실행되는 @SpringBootApplication이 붙은 메인 클래스를 찾지 못했다는 뜻
java -jar로 jar파일을 실행 시키면 JVM이 jar파일의 메인 클래스를 호출하는데 이를 찾지 못해서 발생하는 문제
Spring boot 2.5.0 버전 이상 부터는 gradle로 빌드할 때 jar파일이 아래처럼 2개가 생성

첫 번째 jar는 해당 프로젝트의 모든 의존성이 추가된 것
두 번째 plain.jar는 의존성을 제외한 프로젝트의 리소스들만 포함된 파일임
그런데 로그를 보면 plain.jar를 실행했기 때문에 메인 클래스를 찾지못하는 것
해결 방법
해결방법은
build.gradle에 아래 옵션을 추가 하면 됨
해당 옵션을 추가해주면 plain.jar가 생성되지 않아 jar를 정상적으로 실행시킬 수 있음
|
jar { |
|
enabled = false |
|
} |