专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

SpringBoot打包失败原因全解,Jar结构与插件配置详析

哈喽,大家好,编程周记今天给大家分享SpringBoot的打包细节。

我们都知道SpringBoot打包插件是:

<build>
    <plugins>
    <!-- spring-boot-maven-plugin插件就是打包spring boot应用的 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins
</build>

既然知道是这个,为什么会打包失败呢?

打包出来不是SpringBoot结构。

一、SpringBoot Jar包结构

怎么看jar包结构?

1、 解压出来;

2、 压缩软件压缩打开;

&nbsp;

目录结构介绍一下吧!

BOOT-INF/classes 是本工程类文件和yml配置文件。

BOOT-INF/lib 是依赖包文件夹,通常查看jar包是否正常打包,就看这里。

BOOT-INF/classpath.idx 是jar的加载顺序。

META-INF/MANIFEST.MF 定义启动入口和启动类。

META-INF/maven/..*/pom.xml 项目的pom文件。

org包含了SpringBoot的类加载器

值得注意的是除了打印出SpringBoot可执行jar包之外,插件还会打印原始jar

包。

xx*.jar.original

二、SpringBoot打包失败的情况

回归正题:什么情况下打包失败??

1、 未添加

<build>
    <plugins>
    <!-- spring-boot-maven-plugin插件就是打包spring boot应用的 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins
</build>

什么情况下可以不加,那就是继承SpringBoot父工程的时候才能省略。

2、 有时候没替换原始jar,也会导致生成失败;

解决方式:添加repackage配置

<plugin>
    <!-- springboot maven 编译插件,可生成可执行 jar,并使 springboot-devtools 生效 -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>${spring-boot.version}</version>
    <executions>
        <execution>
            <goals>
                <!-- 是否替换原始 jar,重新生成一个 xx*.jar.original -->
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

3、 包围在里导致失效;

这个就跟dependencyManagement的作用差不多,并不实际引入。

职场经验

《永远不要主动揽活,不要写不属于自己任务范围的代码,否则,它将成为你的额外任务和永久运维者。》

未经允许不得转载:搜云库 » SpringBoot打包失败原因全解,Jar结构与插件配置详析

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们