重现
今天一个多模块的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>