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>      

记得重新打包

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐