You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

spring-boot-maven-plugin未生成Fat Jar问题求助

解决Spring Boot Maven插件打包无依赖Fat Jar的问题

看起来你遇到的问题是Spring Boot Maven插件没有生成包含所有依赖的Fat Jar,反编译后看不到依赖对吧?别着急,我来帮你排查解决:

核心问题:缺失repackage目标的配置

Spring Boot Maven插件生成Fat Jar的关键是执行repackage这个goal——它会把Maven默认生成的仅包含你自身代码的Jar,重新打包成包含所有依赖的可执行Fat Jar。从你给出的配置片段来看,你的<execution>配置不完整,大概率是没指定这个关键的goal。

修复方案

方案1:补全插件的Execution配置

把你的插件配置改成下面这样,确保包含repackage goal:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.5.9.RELEASE</version>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

方案2:简化配置(更推荐)

如果你已经在pom.xml里继承了Spring Boot的parent(如下所示),其实完全不需要手动配置<executions>——Spring Boot Parent已经默认把repackage goal绑定到了package阶段:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>

这种情况下,插件配置可以简化成:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.5.9.RELEASE</version>
</plugin>

额外注意点

  • 执行mvn clean package后,target目录下会生成两个Jar:一个是xxx.jar.original(这是Maven默认生成的普通Jar,仅含你的代码),另一个xxx.jar才是包含所有依赖的Fat Jar。你反编译的时候别搞错文件了!
  • 确保你的项目是标准的Spring Boot项目:要么继承了Spring Boot Parent,要么在dependencyManagement里引入了Spring Boot Dependencies管理,否则插件可能无法正常工作。

内容的提问来源于stack exchange,提问作者Pankaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:31:11