개발강의정리/Spring

[스프링 부트 개념과 활용] 3-8. 독립적으로 실행 가능한 JAR

nineDeveloper 2019. 10. 20.
728x90

스프링 부트 개념과 활용


3. 스프링 부트 원리

포스팅 참조 정보

GitHub

공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다

해당 포스팅에 대한 내용의 GitHub 주소

실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다

https://github.com/freespringlecture/springboot-concept-uses/tree/chap03-08-jar

 

freespringlecture/springboot-concept-uses

백기선님의 스프링 부트 개념과 활용 강의 내용 정리. Contribute to freespringlecture/springboot-concept-uses development by creating an account on GitHub.

github.com

해당 포스팅 참고 인프런 강의

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

스프링 부트 개념과 활용 - 인프런

스프링 부트의 원리 및 여러 기능을 코딩을 통해 쉽게 이해하고 보다 적극적으로 사용할 수 있는 방법을 학습합니다. 중급 프레임워크 및 라이브러리 Spring Spring Boot 온라인 강의

www.inflearn.com

실습 환경

  • Java Version: Java 11
  • SpringBoot Version: 2.1.2.RELEASE

8. 독립적으로 실행 가능한 JAR


https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html

 

Appendix E. The Executable Jar Format

The spring-boot-loader modules lets Spring Boot support executable jar and war files. If you use the Maven plugin or the Gradle plugin, executable jars are automatically generated, and you generally do not need to know the details of how they work. If you

docs.spring.io

 

JAR 파일 하나로 실행

  • mvn package를 하면 실행 가능한 ​JAR 파일 “하나가"​ 생성 됨
  • spring-maven-plugin이 해주는 일 (패키징)
  • 과거 uber jar 를 사용
    • 모든 클래스 (의존성 및 애플리케이션)를 하나로 압축하는 방법
    • 뭐가어디에서온건지알수가없음
      • 무슨 라이브러리를 쓰는건지..
    • 내용은 다르지만 이름이 같은 파일은 또 어떻게?

스프링 부트의 전략

스프링 부트 MANIFEST.FE 정보를 활용해서 JAR 하나로 애플리케이션이 구동 가능하게 만들어줌
모든 JAR 파일의 시작점은 MANIFEST.FE 이고 Main-Class 이다

  • 내장 JAR : 기본적으로 자바에는 내장 JAR를 로딩하는 ​표준적인 방법이 없음​
  • 애플리케이션 클래스와 라이브러리 위치 구분
  • org.springframework.boot.loader.jar.JarFile을 사용해서 내장 JAR를 읽는다
  • org.springframework.boot.loader.Launcher를 사용해서 실행한다

MAVEN

clean

mvn clean

package

mvn package

package Test Skip

mvn package -DskipTests

debug

-Ddebug

target에 생성된 JAR로 실행 가능

java -jar xxx.jar
728x90

댓글

💲 추천 글