重現
今天一個多模塊的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>