TIL

jar 파일이란. 스프링에서 plain.jar을 만든 이유

하얀잔디 2022. 10. 6. 17:19

https://zandi123.tistory.com/16

 

클래스로더란? 쉽게정리

스프링을 돌리다가 첫줄이 클래스로더에 관련된 내용이라 궁금해졌다. 위에는 자바가 실행 동작과정을 설명한 그림이에용 우선 자바 어플리케이션이 어떻게 동작하는 지 알아봐요! 1. 사용자

zandi123.tistory.com

에서 쓴 것처럼,

 

우리가 쓴 .java 파일은 javac에 의해 .class(바이트코드) 로 바꿔주는데,

 

그럼 .jar 파일은?? 이라는 생각이 들었다.

왜냐하면 이번에 새로운 프레임워크를 쓰게 되면서 jar파일을 우선 수동으로 옮겨줘야 하는 상황이 왔기 때문이다..

 

 

JAR?

 

자바 class 파일 등 메타데이터의 압축파일이다.

 

jar 명령어를 이용해서 jar파일은 만들거나, 압축을 풀 수 있다.

 

현재 스프링에서 jar 파일을 만들려면 ,  오른쪽 Gradle 칸을 선택하고, (Intellij 기준)

build -> build 를선택

build를 선택하면 builds/ libs 에 jar 파일이 2개 생성된다.

 

 

 

plain.jar은 실행이 안되는 jar이고,

그냥 .jar은 실행이 되는 jar파일 이란다.

 

그럼 왜 plain.jar 이 있는거지?

 

스프링 부터 2.5.0 이후에는 (나름 최근이다! ) 2개가생성된다더라. 왜?

 

의존성이 포함되어 있지 않은 파일이 필요할때를 위한 것이라고 한다.

 

사실 아직 필요한 이유를 모르겠다. 굳이 최근 버전에부터 넣을 필요가 있었을까? 구글링을 보면 대부분 plain.jar 생성막는법.. 등등이 나오고 있다.

 

 

https://velog.io/@shawnhansh/SpringBoot-Executable-jar-plain-jar

 

SpringBoot Executable jar & Plain jar

최근 스프링부트 2.6.7 버전으로 개발을 하는 중인데 빌드를 하면 jar 파일이 두개가 생성되었습니다. 하나는 기존에 알고 있던 [프로젝트명-버전.jar]이고, 다른 하나는 [프로젝트명-버전-plain.jar]

velog.io

 

참고하실 분은 참고하면 좋을 것 같다.

'TIL' 카테고리의 다른 글

1018 index 설정시 고려할 점  (0) 2022.10.18
웹소켓 정리, 스프링 간단구현  (0) 2022.10.06
제네릭이란  (1) 2022.10.04
N+1문제, JPA 쿼리 수 측정  (0) 2022.09.29
쿠키, 세션, 토큰 차이  (0) 2022.09.28