Gradle은 Java 라이브러리나 애플리케이션을 패키징하는 데 사용할 수 있는 다양한 종류의 JAR 파일을 생성할 수 있습니다.

"Plain JAR"는 단순한 JAR 파일을 의미합니다. 이것은 다른 라이브러리나 클래스를 포함하지 않고, 오직 하나의 Java 애플리케이션 클래스 파일만을 포함하는 JAR 파일입니다. 일반적으로 단일 프로젝트에서 사용되는 모든 코드를 담고 있는 JAR 파일이 아닌, 특정 클래스 또는 패키지를 담는 데 사용됩니다.

Plain JAR은 Gradle이 자동으로 생성하는 것은 아니며, 프로젝트에 필요한 JAR 파일의 종류를 구성할 때 사용자가 선택할 수 있는 옵션입니다. 다른 종류의 JAR 파일로는 실행 가능한 JAR (executable JAR) 파일, 라이브러리 JAR (library JAR) 파일 등이 있습니다.

저 같은 경우에는 Gradle 을 통해 JAR 를 빌드하고 Dockerfile 로 jar 파일을 이용하여 이미지 생성 시 오류가 나서 두 개의 JAR 가 생성됨을 인지할 수 있었습니다.

해결 방법 1 : build.gradle 파일 수정

jar {
	enabled = false
}

해결 방법 2 : Dockerfile 파일 수정

FROM openjdk
COPY build/libs/*SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]