오늘의 오류 | 기본 manifest 속성이 없습니다

Seeun Park·2022년 5월 10일
0

오늘의 오류

목록 보기
3/3

Travis CI 자동화 배포를 진행하면서 배포가 진행되지 않아서 로그를 확인하니 아래와 같은 에러를 확인할 수 있었다..

*.jar에 기본 Manifest 속성이 없습니다.

처음에는 log파일의 권한문제로 안되는건가 싶었는데,
천천히 내가 작성한 스크립트를 확인한 결과 원인을 찾을 수 있었다.


REPOSITORY=/home/ec2-user/app/step2

...(생략)

echo "> 새 어플리케이션 배포"

JAR_NAME=$(ls -tr $REPOSITORY/*.jar | tail -n 1)

echo "> JAR Name: $JAR_NAME"

echo "> JAR Name 에 실행권한 추가"

...(생략)

JAR 파일을 지정하는 과정에서 Plain Jar 파일을 java -jar로 실행하고 있었다.

스프링 부트 Gradle 플러그인 2.5 부터는 Gradle 빌드시 Jar 파일이 두 개가 생성된다.
그 중 하나가 어플리케이션에 필요한 모든 의존성을 포함시키지 않고 소스코드의 클래스파일 과 리스소 파일들만 포함하는 Plain Jar 파일이다. tail로 가져오다보니 자꾸 Plain Jar 파일을 배포하고 있었다. 그 결과 "*.jar에 기본 Manifest 속성이 없습니다."라고 뜨는 것이었다.

Plain Jar 파일을 생성하고 싶지 않으면 아래와 같이 build.gradle 파일에 추가해주면 된다.

build.gradle

jar {
	enabled = false
}

build 결과 Executable Archive Jar 파일만 생성되는 것을 확인 할 수 있다.

0개의 댓글