spring boot maven plugin에 관한 내용이다.
스프링부트 프로젝트를 만들고 개발을 할 때는 intellij에서 실행시켜서 확인하면 된다.
그러나 이 어플리케이션을 배포 or 도커 이미지로 만들 때는 JAR 패키지로 패키징하여 JAR파일을 실행하는 방법이 유용하게 사용된다.
먼저, mvn clean을 해준다.(target 하위를 모두 비우는 것)
그 후, mvn package를 해준다.
그럼 target에 jar파일이 생성된다.
이 jar 파일로 어플리케이션을 실행시킬 수 있다.(target 디렉토리에서 실행)
java -jar "jar파일이름"
이렇게 jar파일로 만들면 수많은 의존성들도 만들어진 jar파일에 모두 들어있다.
스프링부트는 내장 JAR로, 만들어진 JAR파일안에 여러 JAR파일들을 묶어놓고, 그 JAR파일들을 읽을 수 있는 파일들을 만들어놓았다.
org.springframework.boot.loader.jar.JarFile을 이용하여, 내장 JAR 파일을 읽고, org.springframework.boot.loader.Launcher를 사용하여 실행한다.
즉, 스프링부트는 독립적으로 실행가능한 애플리케이션이다.