SpringBoot项目打jar包后执行jar包提示:xx没有主属性清单 解决
今天在练习SpringBoot项目打jar包部署的时间遇见了一个问题:jar中没有主属性清单,对此也是比较疑惑,在百度之后找到了解决方式
主属性清单是jar包中MANIFEST.MF文件中的属性,MANIFEST.MF文件在jar报的META-INF路径下
用记事本打开发现里面的信息如下
正常的文件应该是下面这样的
对比之后会发现错误的文件少了很多信息,相关属性含义如下:
Manifest-Version:生成的manifest.mf文件的版本
?Built-By:文件的创建用户命名,在IDEA的配置文件中可以设置
?Created-By:文件的生成者,一般由jar命令行工具生成,这里显示的时idea
?Bulid-Jdk:所使用的JDK环境
Main-Class:属性值代表了Spring Boot中启动jar包的程序,值为 org.springframework.boot.loader.JarLauncher,这个就是Springboot启动项目的类
Start-Class:属性值代表了Spring Boot程序的入口类,即XXXApplication类
Spring-Boot-Classes:属性值代表了类路径,所有编译后的class文件,以及配置文件,都存储在该路径下
Spring-Boot-Lib:属性值代表了表示依赖的jar包存储的位置
Implementation-Title 定义了扩展实现的标题
Implementation-Version 定义扩展实现的版本
之所以会出现这个问题的原因就是缺少SpringBoot打包所需的插件,在pom文件加上配置就可以了
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
记得重新打包
|