Cloud/AWS-EC2
[AWS] EC2 서버 배포 시 plain.jar 파일 오류 발생
jolocal
2024. 5. 8. 13:45
728x90
프로젝트 수동 배포를 쉽게 하기 위해 쉘 스크립트를 작성했는데 특정 조건에서 실행 시 정상 접근이 불가했다. 원인을 찾기 위해 이것저것 찾아보다가...
nohup.out 파일 내용을 확인해보니
no main manifest attribute, in /app/step1/Ubuntu/{프로젝트 루트}/{프로젝트명}-0.0.1-SNAPSHOT-plain.jar
이런 에러가 적혀 있었다.
스크립트에서는 build/libs 파일 내에 생성된 jar 파일 중에 가장 마지막에 생성된 것을 실행시키는데, plain.jar파일이 실행되면 에러가 발생한다.
그래서 검색하다가 방법을 발견했다.
build.gradle에
jar {
enable = false
}
를 추가하면 된다.
plain.jar 파일은 모든 의존성을 포함하지 않고, 소스 코드의 클래스 파일과 리소스 파일만 포함하고 있어서 java-jar로 실행하면 에러가 발생한다.
그래서 해당 파일이 생성되지 않도록 위의 설정을 해줘야 하는 것이다.
(파일은 스프링부트 2.5 버전부터 자동 생성 된다고 한다.)
적용해보니 일반 jar 팡리만 생성되고 잘 실행되는것을 확인했다.
(물론 적용해서 돌리기 전에 기존에 생성된 plain.jar는 삭제해줘야 한다.)
https://dongjuppp.tistory.com/87
https://dev-j.tistory.com/22
728x90