Spring Boot는 JAR 또는 WAR 파일을 실행 가능한 형태로 만들어서 애플리케이션을 보다 쉽게 배포할 수 있도록 지원합니다. Spring Boot Maven Plugin이 이러한 역할을 수행합니다. Maven Dependency로 다음과 같이 추가하도록 합니다.

pom.xml 파일
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Spring Boot Maven Plugin은 다음의 기능을 제공합니다.

  • JDK 1.8 기본 사용
  • UTF-8 인코딩
  • spring-boot-dependencies POM에 정의되어 있는 공통 dependency 버전 변경할 수 있도록 지원
  • repackage goal에서 실행
  • 리소스 필터링

Spring Boot Maven Plugin에서 지원하는 Goal은 다음과 같습니다.

GoalDescription

spring-boot:build-image

buildpack을 이용하여 애플리케이션을 OCI 이미지로 패키징

spring-boot:build-info

build-info.properties 파일을 생성

spring-boot:help

플러그인의 도움말 출력

상세한 파라미터 정보를 표시하려면 mvn spring-boot:help -Ddetail=true -Dgoal=<goal-name> 커맨드를 사용

spring-boot:repackage

생성한 JAR, WAR을 재패키징. 실행가능하도록 패키징.

spring-boot:run

현재 위치에서 애플리케이션을 실행

spring-boot:start

애플리케이션을 실행. 일반적으로는 통합 테스트시 활용.

spring-boot:stop

start goal로 시작한 애플리케이션을 중지

다음은 실행가능한 JAR, WAR 파일을 생성하기 위해서 repackage goal을 실행하도록 설정합니다. repackage goal은 maven package lifecycle에 맞춰서 동작하도록 되어 있습니다.

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<executions>
				<execution>
					<goals>
						<goal>repackage</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>