spring-boot:repackage生成的MANIFEST.MF中的Main-Class和Start-Class

参考文章:

Spring Boot Maven Plugin打包异常及三种解决方法:Unable to find main class

------------------------------------------

1、maven默认打的war内的MANIFEST.MF文件中,只包含Main-Class,且是main方法所在的类。

2、而通过spring-boot:repackage对默认war包处理后,MANIFEST.MF就包含了Main-Class和Start-Class,并且原来的Main-Class变成了新的Start-Class,而新增加的Start-Class与打包的类型有关,分别为org.springframework.boot.loader.WarLauncher和org.springframework.boot.loader.JarLauncher。

3、默认的Main-Class和新的Start-Class,可以通过pom.xml进行设置, 根节点<project>下的<properties>元素和插件spring-boot-maven-plugin下的<configuration>元素都可以进行设置。但配置项名称不同,<properties>下是通过<start-class>进行配置,<configuration>是通过<mainClass>进行配置。如果两者同时进行了配置,则<configuration>下的<mainClass>起作用。

4、不要单据执行目标(goal)---spring-boot:repackage,而要通过Lifecycle的package或intall完整执行一系列的目标(goal)。

原文地址:https://www.cnblogs.com/StarkBrothers/p/11777776.html