[Spring] Docker Container 실행중 no main manifest attribute, in build/libs/-.jar

JunH·2023년 4월 4일

Source : https://dongjuppp.tistory.com/87

현재 프로젝트는 gradle 을 사용중이기때문에, 일부만 발췌


  1. 번외로 spring boot 2.5.0 이상 버전, gradle을 사용하는 사람들에게 알려주는 방법

spring boot 2.5.0버전 이상부터는 gradle로 빌드를 할때 jar파일이 2개 생성된다.

  1. 앱이름.jar -> bootJar Task로 생성된것

  2. 앱이름-plain.jar -> build Task로 생성된것

첫번째 jar는 해당 프로젝트에 필요한 모든 의존성이 같이 추가된것으로 MANIFEST.MF까지 모두 정상적인 형태로 나온다.

하지만 plain.jar는 의존성을 제외하고 딱 프로젝트에 있는 자원들만 jar로 만든것으로 spring 관련 의존성이 빠져 MANIFEST.MF에 Main메소드의 위치가 나오지 않는다.

여기서 앱이름-plain.jar를 java -jar로 실행하면 no main manifest attrubute in에러가 발생한다.

앱이름-plain.jar를 생성하지 않기 위해서는 아래 명령어를 build.gradle에 추가해 주자


jar {
   enabled = false
}

0개의 댓글