스프링부트 보다는 spring maven plugin과 관련
mvn package
를 실행하면 jar파일 하나가 생성 된다.
- spring-maven-plugin이 해주는 일 (패키징)
mvn clean
target 폴더 아래 파일을 삭제
- 과거 "uber" jar를 사용
- 모든 클래스 (의존성 및 애플리케이션)를 하나로 압축하는 방법
- 하나의 jar로 만들어 버림
- 뭐가 어디에서 온 건지 알 수 없음
- 무슨 라이브러리를 쓰는 건지..
- 내용은 다르지만 이름이 같은 파일은 또 어떻게?
- 스프링 부트의 전략
- 내장 JAR : 기본적으로 자바에는 내장 JAR를 로딩하는 표준적인 방법이 없음
- 애플리케이션 클래스와 라이브러리 위치 구분
- BOOT-INF/lib 폴더 아래에 의존 jar 파일들이 있음
- jar를 읽기위한 파일을 따로 둠
- org.springframework.boot.loader.jar.JarFile을 사용해서 내장 JAR를 읽는다.
- org.springframework.boot.loader.Launcher를 사용해서 실행한다. main 메소드를
- MANIFEST.MF 파일에 정보가 정의 되어 있다.