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

Maven构建Spring Boot可执行jar报No auto configuration classes错误如何解决

Spring Boot打包报错解决方案

问题根因

报错java.lang.IllegalArgumentException: No auto configuration classes found in META-INF/spring.factories的核心原因是Maven打包时未使用Spring Boot官方指定的打包插件,生成的jar为普通Java jar包,缺少Spring Boot可执行jar所需的自动配置元信息、依赖包以及启动入口配置。

解决步骤

1. 补充Spring Boot打包插件配置

在pom.xml的<build><plugins>节点下添加如下配置:

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

如果你的项目没有继承spring-boot-starter-parent,需要额外指定插件版本(和你使用的Spring Boot版本保持一致),同时显式声明启动主类:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>替换为你的Spring Boot版本号</version>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <mainClass>替换为你的启动主类全限定名,例如com.example.demo.DemoApplication</mainClass>
    </configuration>
</plugin>

2. 执行正确的打包命令

在项目根目录(pom.xml所在目录)执行命令:
mvn clean package
不要使用IDEA自带的Build Artifact功能生成jar,该方式默认不会整合Spring Boot的打包规则。

3. 运行生成的可执行jar

打包完成后进入target目录,选择大小为几十MB、包含所有依赖的jar包执行启动命令即可:
java -jar 替换为你的jar包名称.jar

常见排查点

  • 启动主类上必须添加@SpringBootApplication注解,不要遗漏
  • 不要同时配置多个自定义打包规则(例如冗余的maven-jar-plugin配置),避免覆盖Spring Boot插件的打包结果
  • 打包前清理本地target目录的历史文件,避免缓存导致的配置不生效问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:30:01