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

Spring Boot Maven项目repackage失败:无法找到主类

解决Spring Boot Maven构建报错:Unable to find main class

你的pom.xml和报错信息显示两个核心问题,直接导致构建失败:

问题分析

  1. 依赖版本严重不兼容
    项目parent用的是Spring Boot 3.0.6,但你手动给spring-boot-starter-web指定了2.2.2.RELEASE版本,这两个版本跨度过大,不仅会引发依赖冲突,还会因为Spring Boot 3.x要求Java 17,而2.x版本不兼容该Java版本,间接影响类编译和主类识别。

  2. 缺少Spring Boot主启动类
    Spring Boot项目必须有一个标记@SpringBootApplication注解的主类作为入口,否则spring-boot-maven-plugin无法找到启动类,执行repackage目标时就会报错。

修复方案

1. 统一依赖版本

删除spring-boot-starter-web中的手动版本指定,让parent自动管理所有Spring Boot依赖的版本,保证版本一致性:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-web</artifactId>  
    </dependency>
</dependencies>

2. 添加主启动类

在src/main/java/com/example/demo目录下创建DemoApplication.java文件,内容如下:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

3. 重新构建项目

执行Maven清理和构建命令:

mvn clean package

额外检查项

  • 确认主类的包路径com.example.demo和pom.xml中groupId(com.example)、artifactId(demo)完全对应
  • 本地环境的Java版本确实是17,和pom.xml中java.version配置一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:45:36