Spring Boot Maven项目repackage失败:无法找到主类
解决Spring Boot Maven构建报错:Unable to find main class
你的pom.xml和报错信息显示两个核心问题,直接导致构建失败:
问题分析
依赖版本严重不兼容
项目parent用的是Spring Boot 3.0.6,但你手动给spring-boot-starter-web指定了2.2.2.RELEASE版本,这两个版本跨度过大,不仅会引发依赖冲突,还会因为Spring Boot 3.x要求Java 17,而2.x版本不兼容该Java版本,间接影响类编译和主类识别。缺少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
相关产品推荐
相关产品推荐

