由于springboot项目jar包太大,导致传输发布很不方便,于是尝试将flatjar瘦身,即将jar包里面的第三方jar,即lib目录移出来,有很多的本地jar包需要解决,如:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201206112013298.png)
1. 原始配置,使用spring-boot-maven-plugin:
2. 第一种方式:使用maven-dependency-plugin、spring-boot-maven-plugin瘦身:
启动命令:java -Dloader.path="./lib/" -jar flow-1.0-SNAPSHOT.jar
注意:
(1)如果不设置:layout:ZIP,-Dloader.path="./lib/" 不会生效!
(2)依赖打包(lib中)可能会出现jar包冲突问题!遇到一个第三方jar中包含了servlet-api-2.3,而springboot中内嵌的tomcat中也会有此jar,导致冲突问题,将第三方jar中的servlet-api-2.3排除即可。
-
第二种方式:使用maven-dependency-plugin、maven-jar-plugin瘦身:
maven-dependency-plugin配置同方式2一致;
注意:对于本地jar包,需要在manifestEntries中的Class-Path中手动添加,有多少写多少,用空格隔开(格式要求比较严格)!这个有点恶心,本地jar较多的话很不方便!
以下是此打包后的效果:
结论:考虑到本地jar比较多,维护配置不太方便,使用第二种方法。但主要jar包依赖冲突问题!