java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Spring Boot Maven可执行jar

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

作者:李少兄

SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理,提升开发效率与构建灵活性,本文给大家介绍Spring Boot Maven 插件如何构建可执行JAR的核心配置,感兴趣的朋友一起看看吧

前言

在 Java 生态中,Spring Boot 以其“约定优于配置”的理念和开箱即用的特性,成为现代应用开发的首选框架。而 spring-boot-maven-plugin 作为 Spring Boot 的核心插件,承担着将应用打包为可执行 JAR/WAR 的关键角色。

一、插件的核心功能与目标

1.1 插件的定位

spring-boot-maven-plugin 是 Spring Boot 提供的 Maven 插件,其核心目标是:

1.2 插件的 Goals(目标)

该插件定义了 5 个核心目标(Goal),分别对应不同的构建阶段:

Goal作用
repackagemvn package 后重新打包,生成可执行的 JAR/WAR(保留原始包为 .origin 文件)。
run通过 mvn spring-boot:run 直接运行应用,无需显式打包。
start在集成测试阶段启动应用(非阻塞),常用于测试前的初始化。
stop在集成测试完成后停止由 start 启动的应用。
build-info生成 build-info.properties 文件,记录项目版本、构建时间等元信息。

1.3 插件定位

spring-boot-maven-plugin 是 Spring Boot 提供的官方 Maven 插件,其核心目标是将 Spring Boot 应用程序打包为可独立运行的 JAR 或 WAR 文件。与传统 Maven 打包方式不同,该插件生成的可执行文件内置了嵌入式服务器(如 Tomcat、Jetty),无需依赖外部容器即可运行,极大简化了部署流程。

1.4 核心功能

二、核心配置详解

2.1 <mainClass>:指定入口类

<configuration>
    <mainClass>com.example.Application</mainClass>
</configuration>

2.2 <skip>:跳过插件执行

<configuration>
    <skip>true</skip>
</configuration>

2.3 <includeSystemScope>:包含系统依赖

<configuration>
    <includeSystemScope>true</includeSystemScope>
</configuration>

2.4 <layout>:定义打包格式

<configuration>
    <layout>JAR</layout>
</configuration>

2.5 <executions>:绑定构建生命周期

(1) repackage 目标

<executions>
    <execution>
        <id>repackage</id>
        <goals>
            <goal>repackage</goal>
        </goals>
    </execution>
</executions>

(2) run 目标

mvn spring-boot:run

(3) startstop 目标

<execution>
    <id>start</id>
    <goals>
        <goal>start</goal>
    </goals>
</execution>
<execution>
    <id>stop</id>
    <goals>
        <goal>stop</goal>
    </goals>
</execution>

(4) build-info 目标

<execution>
    <goals>
        <goal>build-info</goal>
    </goals>
</execution>

三、高级配置与最佳实践

3.1 多环境配置

通过 <profiles> 动态切换配置文件:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <env>prod</env>
        </properties>
    </profile>
</profiles>

结合资源过滤(resources 配置)实现不同环境的配置分离。

3.2 与 Spring Boot DevTools 集成

启用热部署(HotSwap):

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

3.3 自定义构建信息

通过 build-info 目标生成元数据:

<execution>
    <id>generate-build-info</id>
    <goals>
        <goal>build-info</goal>
    </goals>
    <phase>process-resources</phase>
</execution>

生成的 build-info.properties 示例:

build.artifact=example-app
build.name=example-app
build.version=1.0.0
build.time=2025-07-13T22:00:09Z

四、典型配置示例

4.1 基础配置

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>${spring-boot.version}</version>
    <configuration>
        <mainClass>com.example.Application</mainClass>
        <skip>false</skip>
        <includeSystemScope>false</includeSystemScope>
        <layout>JAR</layout>
    </configuration>
    <executions>
        <execution>
            <id>repackage</id>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

4.2 高级配置(集成 DevTools 与多环境)

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <mainClass>com.example.Application</mainClass>
                        <layout>JAR</layout>
                    </configuration>
                    <executions>
                        <execution>
                            <id>repackage</id>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

五、常见问题与解决方案

5.1 启动类未正确识别

5.2 依赖冲突

5.3 打包后体积过大

六、总结

spring-boot-maven-plugin 是 Spring Boot 项目构建的基石,其配置直接影响应用的打包效率、运行性能及维护成本。通过合理配置 <mainClass><layout><executions> 等参数,开发者可以灵活控制构建流程,适配不同场景需求。同时,结合 DevTools、多环境配置等高级特性,能够显著提升开发效率与部署灵活性。

到此这篇关于Spring Boot Maven 插件如何构建可执行 JAR 的核心配置的文章就介绍到这了,更多相关Spring Boot Maven可执行jar内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文