새소식

Language/Java

Java 빌드 시 생성되는 Plain Archive (-plain.jar) 파일 제거

  • -

Java 를 빌드할 때 생성되는 Plain.jar 파일을 제거하는 방법

 

 

 

1. Plain vs Executable Archive

 

 

  • Spring Boot 2.5 version 이상부터 Gradle 빌드 시 아래와 같은 명명 규칙으로 jar 파일이 2개 생성됩니다.
  1. <Project>-<Version>.jar
  2. <Project>-<Version>-plain.jar

 

Java 빌드 후 Jar 파일 생성

 

 

실제 Java 를 구동함에 있어 필요한 jar 파일은 첫 번째 것인데, plain.jar 는 무엇이고 어떻게 제거하는 지 알아보겠습니다.

 

 

 

1.1. Plain Archive

 

 

plain.jar 를 Plain Archive 라고도 하는데,
여기서 plain 은 해당 JAR 파일이 특별한 라이브러리나 의존성 없이 오직 프로젝트 소스 코드만 포함하고 있음을 의미합니다.

 

그렇다는 것은, 모든 의존성이 존재하지 않기 때문에 java -jar 로 실행 시 에러가 발생합니다.

 

Plain Archive 는 Gradle 의 jar task 로 생성됩니다.

 

 

 

1.2. Executable Archive

 

 

plain.jar 가 아닌 실제 애플리케이션 실행에 필요한 jar 파일을 Executable Archive 라고 지칭합니다.

 

여기에는 애플리케이션 실행에 필요한 모든 의존성이 함께 빌드되어 있기 때문에,
java -jar 명령어로 실행이 가능합니다.

 

  • Executable Archive 는 Gradle 의 bootJar task 로 생성됩니다.

 

 

 

 

2. Plain Archive 제외

 

 

2.1. build.gradle 파일 설정

 

 

Plain Archive 를 빌드 과정에서 제외시키는 것은 굉장히 단순합니다.
build.gradle 에 아래 설정을 추가하면 끝입니다.

 

jar {
    enabled = false
}

 

build.gradle 수정

 

 

빌드 진행 후 Jar 확인

 

빌드 후 Plain.jar 가 사라짐

 


 

참고 문서

 

  • Spring Boot 2.5.0 generates plain.jar file. Can I remove it? - StackOverflow
  • Plain jar vs Executable jar (feat. plain jar 생성 방지) - Blog
  • 4.3. Packaging Executable and Plain Archives - Spring Docs
Contents

포스팅 주소를 복사했습니다