官方文档:https://docs.spring.io/spring-boot/docs/current/maven-plugin/index.html
spring-boot-maven-plugin 插件以Maven的方式为Springboot应用提供支持,能够将Springboot应用打包为可执行的jar或war文件,进行相应部署后即可启动Springboot应用。
spring-boot-maven-plugin 的构建目标:
- spring-boot:run 运行你的Springboot应用
- spring-boot:repackage 将mvn package 生成的 jar或者war 重新打包成可执行文件,同时修改原文件名,增加.origin 后缀
- spring-boot:start 与 spring-boot:stop 用来管理Springboot应用的生命周期(例如,mvn integration-test 集成测试阶段)
- spring-boot:build-info生成构建信息build-info.properties 可供Actuator 使用
指定打包类型
在pom.xml 文件中指定打包类型,指定生成 的是jar还是war。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... -->
<packaging>jar</packaging>
<!-- ... -->
</project>
插件设置
使用spring-boot-maven-plugin 来对Springboot 应用进行打包,需要在项目的 pom.xml 文件中引入插件。
对于使用了 spring-boot-starter-parent 的项目, 只需在properties中指定start-class启动类即可。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath />
</parent>
<properties>
<start-class>com.bootdo.MyApplication</start-class>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
否则,需要使用如下配置指定启动类和打包类型。
<build>
<plugins>
<!-- ... -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.5.RELEASE</version>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- ... -->
</plugins>
</build>
layout 属性用来指定打成 jar 还是war 文件,可用的值包括:ZIP 、JAR 、WAR、 NONE 。
执行打包
使用mvn package spring-boot:repackage 来执行打包。
mvn package spring-boot:repackage