栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot jar主清单属性丢失解决方案

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot jar主清单属性丢失解决方案

在开发中,用到springboot项目,当打包后部署运行时,出现了这个问题,网上搜了好多,又是加meta-INF配置,又是加啥的,感觉springboot这么方便,这种问题怎么可能会搞这么复杂,于是研究了一下:

首先我们项目要依赖springboot的parent或者引入spring-boot-dependencies

或者

这样就将springboot的pom文件导入了我们的项目,然后还要再要运行的jar包中写入插件:

当使用继承spring-boot-starter-parent时,就会出现标志,表示是继承自父类的,然后我们点到spring-boot-starter-parent的pom文件中,查看插件部分:


     org.springframework.boot
     spring-boot-maven-plugin
     
      
repackage

 repackage

      
     
     
      ${start-class}
     
    
    
     maven-shade-plugin
     
      
package

 shade


 
  
   meta-INF/spring.handlers
  
  
   meta-INF/spring.factories
  
  
   meta-INF/spring.schemas
  
  
  
   ${start-class}
  
 

      
     
     
      
org.springframework.boot
spring-boot-maven-plugin
2.1.12.RELEASE
      
     
     
      true
      true
      

 *:*
 
  meta-INF/*.SF
  meta-INF/*.DSA
  meta-INF/*.RSA
 

      
     
    

注意到里面有一个${start-class}变量,这个变量在parent的pom文件中并没有定义,那么我们就在自己要打jar包运行的模块定义这个变量:

然后再打包,就可以直接通过java -jar *.jar 运行项目了

如果不是继承自parnetxml,而是选择第一种,导入dependencies的方式:

那么就要改一下前面的spring-boot-maven-plugin插件,

我们需要指定打包路径的main方法,这样就可以直接打包通过 java -jar *.jar的方式运行了

重要的是一定要定义start-class变量

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/133791.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号