如何解决Spring Boot构建JAR为空警告及主类加载失败问题
解决Spring Boot Maven构建JAR空+找不到主类的问题
老兄,我刚入门Java和Maven的时候也踩过一模一样的坑,简直头大!咱们一步步来排查,应该很快能解决:
1. 先检查pom.xml的核心配置
这是最常见的问题,Spring Boot项目必须依赖spring-boot-starter-parent或者正确配置spring-boot-maven-plugin,不然Maven不知道怎么打包可执行JAR:
- 确认父依赖存在:你的pom.xml最顶部应该有这段(版本号可以换成你用的Spring Boot版本):
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0</version> <!-- 换成你的项目实际版本 --> <relativePath/> </parent> - 确认Spring Boot插件配置正确:在
<build><plugins>里必须有这个插件,它负责把普通JAR转换成Spring Boot可执行JAR,还能帮你识别主类:
另外,别忘检查<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 手动指定主类,避免插件扫描不到 --> <configuration> <mainClass>com.qa.FinalProjectApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build><packaging>是不是jar——如果写成pom的话,打包出来的根本不是JAR文件,自然会空!
2. 检查项目结构是否符合Maven标准
Maven认死理,必须按它的规则来放代码:
- 你的主类
com.qa.FinalProjectApplication必须放在src/main/java/com/qa/目录下!如果放错地方(比如直接放在src/或者src/java),Maven编译的时候根本不会把它算进去,自然没有class文件,JAR就空了。
3. 先单独编译看看有没有问题
先别直接install,执行mvn compile,看看控制台有没有报错:
- 如果有编译错误(比如语法错、依赖找不到),那肯定生成不了class文件,JAR自然为空。先把编译错误解决了再说。
4. 临时应急:运行时手动指定主类
如果上面的配置都改了还是不行,先试试在运行命令里强制指定主类,看能不能跑起来:
mvn -X spring-boot:run -Dspring-boot.run.main-class=com.qa.FinalProjectApplication
如果这样能运行,说明是插件自动扫描主类的问题,手动配置插件里的mainClass就能解决。
5. 清理Maven缓存试试
有时候本地仓库的缓存会搞事情,执行这个命令强制清理并重新构建:
mvn clean install -U
最后,别忘了确认你的主类上有没有加@SpringBootApplication注解——这是Spring Boot识别主启动类的关键!
内容的提问来源于stack exchange,提问作者Imp0sterSyndromeSufferer
相关产品推荐
相关产品推荐

