EC2 서버 배포 시 plain.jar 파일 관련 문제 발생

seul·2023년 6월 10일
0

SIDE-PROJECT-INFO

목록 보기
7/7
post-thumbnail

프로젝트 수동 배포를 쉽게 하기 위해 책에 적힌대로 쉘 스크립트를 작성했는데 특정 조건에서 실행 시 정상 접근이 불가했다. 원인을 찾기 위해 이것저것 찾아보다가...

nohup.out 파일 내용을 확인해봤는데,

no main manifest attribute, in /home/ec2-user/{프로젝트 루트}/{프로젝트명}-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는 삭제해줘야 한다.)

참고 Url
https://dongjuppp.tistory.com/87
https://dev-j.tistory.com/22

profile
자존감은 일상의 성실함으로부터 온다

0개의 댓글