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

网友投稿 316 2022-12-05


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

在开发中,用到springboot项目,当打包后部署运行时,出现了这个问题,网上搜了好多,又是加META-INF配yJQZhGMv置,又是加啥的,感觉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}

&lthttp://;/transformers>

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变量


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Springboot自动装配实现过程代码实例
下一篇:Spring ApplicationListener的使用详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~