springboot打包实现项目JAR包和依赖JAR包分离
目录
- 写在前面的
- 默认的maven配置
- 解决方案
- assembly配置
- maven中的配置
- 最终打包后的效果
写在前面的 当我们使用spring boot写项目时,一般都会遇到一个问题,那就是spring boot打包时,会将自己写的代码和项目的所有依赖文件打成一个可执行的jar包。
通常我们的项目都是运行在服务器上的,当项目更新时,每次都要向服务器上传这个包。如果项目的依赖包很多,那么这个文件就会非常大。
大文件上传不仅浪费带宽,有时候网络不稳定,传输一半断网,又要重新上传,非常麻烦。
文章图片
默认的maven配置
org.springframework.boot spring-boot-maven-plugin
如果能将项目外部依赖和自己的代码包分开打包,当修改项目后,只需要再次覆盖修改后的包,那岂不是美滋滋?
【springboot打包实现项目JAR包和依赖JAR包分离】
解决方案 使用maven的assembly打包插件
assembly配置
在项目中创建一个文件,我放在src/main/assembly/assembly.xml中,大家可以根据喜好自己创建。
文章图片
assembly中的具体配置
bin zip false false lib false ${project.basedir} README* LICENSE* NOTICE* ${project.basedir}/src/main/resources config ${project.basedir}/src/main/bin bin ${project.build.directory} *.jar
maven中的配置
org.apache.maven.plugins maven-jar-pluginfalse true lib/ com.zbrx.speed.App org.apache.maven.plugins maven-assembly-pluginsrc/main/assembly/assembly.xml make-assembly packagesingle org.apache.maven.plugins maven-surefire-plugintrue
最终打包后的效果
文章图片
压缩包里的文件内容
文章图片
lib中的文件
文章图片
config配置文件
文章图片
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- Go|Go 结构体序列化的实现
- 聊聊如何让springboot拦截器的执行顺序按我们想要的顺序执行
- web|web Javascript360°全景实现
- 中间件|【面朝大厂】面试官(你能说说 Nacos 的实现原理吗())
- python|python 循环加速_一行代码实现Python运行性能增强,性能发动机Numba模块介绍
- 微信小程序|基于微信小程序的移动智能学习平台的设计开发和实现
- 单体秒杀服务转dubbo框架+分布式事务实现
- 如何基于实时声纹变声实现对声音的“克隆”
- 微信小程序+laravel|微信小程序+laravel 7+ Redis +短信宝 实现手机号验证码登录
- 一种子图布局方法的实现