笔者最近工作的时候,接到一个地产集团小程序的研发任务,之前也没有相关经验,于是就从网上找了一个类似的项目来改,就是uniapp+若依 开发租房小程序 :  租房小程序,uniapp+若依,易于维护和扩展 (gitee.com), 这个项目来改。后端用的是小程序配套的,指路地址开源字节快速开发平台:  一直想做一款追求极致用户体验的快速开发平台,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间对若依框架进行扩展写了一套快速开发系统。如此有了开源字节快速开发平台。该平台基于 Spring Boot + MyBatis + Vue & Element ,包含微信小程序 & Uniapp, Web 报表、三方登录、支付、短信、邮箱、OSS... (gitee.com)。

站点巨人的肩膀上,的确很快,一周就搞出来了。但是遇到一个问题。就是后端打的jar包太大了,有80M,导致使用jenkins持续集成工具,传输jar包到目的主机,要花费10来分钟(主要是跨网络,研发主机又太差,带宽只有1Mb)。 想想修改个东西,点击运行,然后等个20分钟才生效,项目急的情况,还不给憋死。怎么办呢?解决办法当然是缩小jar的大小,把第三方依赖分离出主包

思路已经有了,怎么解决百度了。网上很多文章,但是都没有一个比较靠谱的。我就记录下来。首先说明,若依框架是一个多模块的spring boot 工程。工程结构如下

source-admin是启动模块,修改它的pom包的build部分,先上代码,主要是修改有三处:

spring-boot-maven-plugin插件的配置:把项目内的自己的代码都包含到主jar包内

增加了maven-jar-plugin插件的配置:指定了启动类,不然会找不到主类

增加了maven-dependency-plugin插件:用于复制第三方依赖。

需要说明的是kaptcha包比较特殊,如果不放在主jar包下,获取验证码的时候,会报ERROR c.v.f.w.e.GlobalExceptionHandler - [handleException,83] - Invalid value 'KaptchaTextCreator' for config parameter 'kaptcha.textproducer.impl,错误,网上说的解决办法是修改jar包,太麻烦,直接打包到主包里头去,不就完事了,所以程序员要学会思考,不能照抄。

org.springframework.boot

spring-boot-maven-plugin

2.1.1.RELEASE

true

source-framework

cn.source

source-system

cn.source

source-quartz

cn.source

source-generator

cn.source

source-common

cn.source

source-cms

cn.source

source-house

cn.source

source-im

cn.source

source-mall

cn.source

source-convention

cn.source

com.github.penggle

kaptcha

repackage

org.apache.maven.plugins

maven-war-plugin

3.1.0

false

${project.artifactId}

org.apache.maven.plugins

maven-jar-plugin

true

lib/

cn.source.RuoYiApplication

org.apache.maven.plugins

maven-dependency-plugin

copy-dependencies

package

copy-dependencies

${project.build.directory}/lib

false

false

true

source-framework, source-system, source-quartz, source-generator,

source-common, source-cms, source-house, source-im, source-mall, source-convention,kaptcha

${project.artifactId}

打包后的效果,主包只剩下800多K了,秒传了。启动命令仍然不变。还是用java -jar方式。

使用jenkins的传输lib目录下的文件,也贴一下,供参考:

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: