Spring Boot打包jar中没有主清单属性

一、问题

当执行java -jar xxx.jar命令时,出现jar中没有主清单属性

jar中没有清单属性# 二、问题分析
jar内部目录
BOOT-INF:主要包括项目class文件和项目依赖的lib jar文件
META-INF:主要是项目的pom.xml文件和清单属性文件
org.springframework.boot.*:主要存放spring的一下相关.class文件

清单属性是在打包是被maven自动打包进jar包中的,没有清单属性,说明maven install 打包时没有执行成功。

清单属性
Manifest-Version: 1.0 //版本
Implementation-Title: blog-web //jar名称
Implementation-Version: 2.2.2 //jar版本号
Built-By: Progress//构建者
Implementation-Vendor-Id: com.blog
Spring-Boot-Version: 2.0.8.RELEASE //spring-boot 版本
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.zyd.blog.BlogWebApplication //程序启动类
Spring-Boot-Classes: BOOT-INF/classes/ //代码.class文件位置
Spring-Boot-Lib: BOOT-INF/lib/ //依赖jar存放位置
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_121 //JDK版本
Implementation-URL: https://projects.spring.io/spring-boot/#/spring-bo
 ot-starter-parent/blog/blog-web

三、解决

问题排查:

  1. pom.xml

     <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.blog.BlogWebApplication</mainClass>
                    <layout>JAR</layout>
                    <!--构建完整可执行程序,可以直接运行-->
                    <executable>true</executable>
                </configuration>
      </plugin>
    

    检查pom.xml中是否配置了spring-boot-maven-plugin插件

  2. maven 环境
    maven点击刷新按钮,查看是否有为安装的maven插件;

    点击clean清理项目;

    点击install,确保下载的相关jar文件都下载成功,并查看是否编译成jar文件;

    解压jar文件,查看是否有清单属性文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用`java -jar`命令运行一个Maven打包的项目时,出现"no main manifest attribute, in java-***-SNAPSHOT.jar"错误通常是由于缺乏清单属性导致的。 清单属性是用于标识可执行JAR文件的入口点的,它告诉Java虚拟机应该运行哪个类作为程序的起点。在Maven打包过程,如果没有正确配置清单属性,那么在运行JAR文件时会出现此错误。 有几种可能的原因导致这个问题。其一种可能是在创建Spring Boot项目时,自动导入的spring-boot-maven-plugin插件添加了`<skip>true</skip>`标签,导致类被忽略。 要解决这个问题,你可以在pom.xml文件手动配置清单属性。你需要确保在`<build>`标签下的`<plugins>`标签添加了正确的配置,指定了项目的类。例如: ``` <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.example.MyApplication</mainClass> </configuration> </plugin> </plugins> </build> ``` 在上面的配置,`com.example.MyApplication`是你的项目的类。你需要根据你的项目结构和类的包名进行相应的修改。 完成配置后,重新运行Maven打包命令,确保生成的JAR文件包含了正确的清单属性。然后再次尝试用`java -jar`命令运行JAR文件,这个错误应该就会消失了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Maven】maven生命周期-jar没有清单属性no main manifest attribute, in java](https://blog.csdn.net/forest_long/article/details/129474087)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [java打包maven启动报错jar没有清单属性](https://blog.csdn.net/Xhani/article/details/131243454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值