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

Maven打包Spring Boot项目运行jar提示找不到主类jar如何解决

问题根因与解决方案

根因定位

  • 第一个核心问题:你在spring-boot-maven-plugin的repackage配置中加了<classifier>spring-boot</classifier>参数,该参数会让maven打包后生成两个jar包:
    1. 后缀不带标识的普通jar包:也就是你现在启动的fb-0.0.1-snapshot.jar,仅包含项目编译后的业务代码,没有嵌套依赖、也没有配置主类入口,不属于可执行jar,启动时就会触发找不到主类的报错
    2. 带spring-boot标识的可执行jar包:名称为fb-0.0.1-snapshot-spring-boot.jar,才是可以直接用java -jar启动的包
  • 第二个配置错误:你重复声明了两次spring-boot-maven-plugin,两处配置会互相覆盖,很容易导致配置失效。

修正配置

将pom.xml中的build部分替换为合并后的统一配置即可:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                    <configuration>
                        <!-- 如果你不需要同时保留普通jar和可执行jar,直接删除classifier配置即可,打包生成的fb-0.0.1-snapshot.jar就是可执行包 -->
                        <!-- <classifier>spring-boot</classifier> -->
                        <mainClass>com.bob.fb.MainApplication</mainClass>
                        <excludes>
                            <exclude>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                            </exclude>
                        </excludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

操作步骤

  1. 更新pom配置后,重新执行mvn clean install
  2. 如果你保留了classifier配置,执行java -jar fb-0.0.1-snapshot-spring-boot.jar启动;如果删除了classifier配置,执行java -jar fb-0.0.1-snapshot.jar即可正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:24:03