728x90
반응형
SMALL
Spring Gradle Build
- 이전 포스팅 글에서는 다루지 않았던 내용에 대해서 포스팅 하고자 한다.
빌드 파일이 2개
- 저번 포스팅에서 build를 하는 과정에서 .jar 파일이 2개가 생기는 현상을 발견했다.
- 하나는 plain 이라는 이름이 붙은 파일이 하나 생겼다.
- 파일 용량을 확인 해 보았을 때, 두개의 용량의 차이가 있는 것을 확인 했고 두개는 다른 파일이겠구나 생각이 들었다.
- 그렇다면 plain이 붙은 건 뭐지?
Plain Archive
- plain archive 는 작성된 소스코드의 클래스 파일과 리소스 파일들 만을 포함한다고 한다 (내가 구현한 프로젝트 자체를 실행 할 수 있는 압축 파일이 아니라고 본인은 이해) [따라서, java -jar 명령어로 실행이 안된다는 말이기도 하다.]
- 다른 말로는 standard, thin 이라는 이름을 쓰기도 한다고 한다.
Executable Archive
- plain 키워드가 없는 것은 executable archive 라고 하며, 필요한 모든 의존성들을 함께 빌드 하는 것이므로 plain과 다르게 실행이 가능한 압축 파일이다.
- fat jar 이라고 부르기도 한다고 한다.
Spring Boot 버젼
- 해당 문제는 (사실 문제는 아니다) Spring Boot 2.5.0 부터 빌드 시 jar가 2개가 생긴 원인이 있다고 한다.
- [참고 자료] https://earth-95.tistory.com/132#BootJar%EC%--%--%--%EC%-D%--%ED%--%B-%--%EC%--%-D%EC%--%B-%EB%--%-C%--jar%EC%--%--%--Jar%EC%--%--%--%EC%-D%--%ED%--%B-%--%EC%--%-D%EC%--%B-%EB%--%-C%--jar%EB%-A%--%--%EB%AC%B-%EC%--%--%EC%-D%B-%--%EB%-B%A-%EB%A-%BC%EA%B-%-C%-F
- 관련 내용에 대해서는 나도 더 깊게 공부해보고 따로 포스팅을 진행해볼 예정이다. (Gradle Task)
해결 방법
- build.gradle 파일에 아래 코드를 추가해주면 된다.
jar {
enabled = false
}
- Gradle 로 빌드를 진행 할때, (build) bootJar 와 Jar 두개의 task가 모두 실행이 되어서 .jar 파일이 생기는 것인데 plain jar 를 생성하고 싶지 않다면 jar 실행을 하지 않게 만들어준다는 것으로 이해하고 있음
해당 코드를 넣기 전
해당 코드를 넣은 후
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.0'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.lec.spring'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
jar {
enabled = false
}
repositories {
mavenCentral()
}
dependencies {
}
tasks.named('test') {
useJUnitPlatform()
}
참고 [감사합니다]
728x90
반응형
LIST
'Spring' 카테고리의 다른 글
[Spring] Gradle jar 빌드파일 만들기 (Feat.Intellij && Terminal) (0) | 2024.01.26 |
---|---|
[Spring] Spring Security + 카카오 OAuth2 로그인 구현 (2) | 2024.01.25 |
[Spring] Spring Security + 구글 OAuth2 로그인 + Youtube Data V3 API 활용 (1) | 2024.01.25 |
[Spring] 화상 채팅 구현하기 (ZEGOCLOUD API 활용 O, WebRTC X, Feat.Thymeleaf) (0) | 2024.01.25 |
[Spring] 스프링 스케쥴 작업 적용 방법 (Feat. @EnableScheduling, @Scheduled) (0) | 2024.01.24 |