使用eclipse结合maven的创建springboot项目,在eclipse中发布没问题,但通过mvn install 打成 jar包,在命令行中运行报错如下
查看该jar包的 MANIFEST.MF 文件内容如下,很明显没有启动类(运行java -jar xxx.jar时会根据主清单属性找到启动类,从而启动程序),也没有相应的主清单属性。
出现此问题一般是由于在pom.xml中少引用了一个插件
org.springframework.boot
spring-boot-maven-plugin
这个插件其实我已经添加,但是添加时是直接在自动生成的pom.xml代码里添加,添加的该上上级标签还存在一个
org.springframework.boot
spring-boot-maven-plugin
maven-clean-plugin
3.0.0
······
可以推断原因为标签的某种机制导致该插件没有被成功引用,尝试为该插件添加版本号,重新生成,不成功;将标签去除之后,mvn clean ——>右键maven——>Update Project,再重新生成jar包,成功。生成jar包 MANIFEST.MF 文件内容如下:
几个主清单属性解释如下:
Main-Class:代表了Spring Boot中启动jar包的程序
Start-Class:属性就代表了Spring Boot程序的入口类,这个类中应该有一个main方法
Spring-Boot-Classes:代表了类的路径,所有编译后的class文件,以及配置文件,都存储在该路径下
Spring-Boot-Lib:表示依赖的jar包存储的位置