重现
今天一个多模块的springboot用maven打成jar包,使用 java -jar 命令启动失败,报错是
//中文提示
xxx.jar中没有主清单属性
//英文提示
no main manifest attribute...
原因
maven的打包错误,没有指定main方法入口类,可以看jar包里面META-INF\MANIFEST.MF
- 正常的内容
Manifest-Version: 1.0
Implementation-Title: xxx
Implementation-Version: 0.0.1-SNAPSHOT
Start-Class: com.xxx.YYYYApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Build-Jdk-Spec: 1.8
Spring-Boot-Version: 2.1.6.RELEASE
Created-By: Maven Archiver 3.4.0
Main-Class: org.springframework.boot.loader.JarLauncher
解决
- 父项目的pom.xml中去掉
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 子模块的pom.xml中加上
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

本文解决了一个多模块的SpringBoot项目在使用Maven打包时遇到的问题,即使用java-jar命令启动失败,原因是缺少主清单属性。文章详细介绍了如何在子模块的pom.xml中正确配置spring-boot-maven-plugin,以确保正确地指定主类入口。
257

被折叠的 条评论
为什么被折叠?



