【转】SpringBoot多模块打包瘦身分离

背景

首先项目是个多层级的多模块springBoot项目,每次打出来的jar包都在90M,其中包含核心代码以及所有依赖的jar包,上传到服务器速度比较慢。

由于核心代码(controller、service、dao、model)会经常改动进行发布上线,而依赖的jar包(pom文件的依赖引用)并不是经常更新,所以希望进行分离打包,改动代码只需要上线发布核心jar包(几十KB吧),提高效率。

打包方法

【转】SpringBoot多模块打包瘦身分离

步骤1:清理之前的jar包

步骤2:进行重新打包
不分离打包

1、pom文件配置

TC_NLP_Platform

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

2、 箭头指向的就是完整的可运行的jar包,根据项目的不同大小不同,整体来说还是很大的。

【转】SpringBoot多模块打包瘦身分离

分离打包

1、pom文件配置,由于项目是多模块的(分层的),所以打包的时候希望TCSP_Management(controller层)、TCSP_DAO、TCSP_Model、TCSP_Service可以合在一起打成一个核心jar包,其他的依赖打包到另外一个地方,达到核心代码与依赖分离打包的目的。
部分配置解释

a、

将不经常改动的依赖包,打包到lib文件夹下

b、

目的是排除TCSP_Management(controller层)、TCSP_DAO、TCSP_Model、TCSP_Service,核心的业务包,不打包到lib文件夹下面

TC_NLP_Platform

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

                        true
                        ZIP

                                TCSP_Model
                                com.toycloud.tcspeech

                                TCSP_DAO
                                com.toycloud.tcspeech

                                TCSP_Service
                                com.toycloud.tcspeech

                                repackage

                    org.apache.maven.plugins
                    maven-dependency-plugin

                            copy-dependencies
                            package

                                copy-dependencies

                                ${project.build.directory}/lib
                                false
                                false
                                true

                                TCSP_Model,TCSP_DAO,TCSP_Service

2、 下图中,1表示的就是所有依赖打包后所在的路径,2表示核心代码所在的路径。

核心代码解压后,包含TCSP_DAO、TCSP_Model、TCSP_Service三个核心模块的jar包

发布到服务器运行:

java -Dloader.path=./lib -Duser.timezone=Asia/Shanghai -jar TC_NLP_Platform.jar

注意:lib文件夹(依赖的jar包)必须和TC_NLP_Platform.jar(核心jar包)在同级目录

Original: https://www.cnblogs.com/zdd-java/p/15811646.html
Author: 达兔哥
Title: 【转】SpringBoot多模块打包瘦身分离

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576110/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 8 int和Integer的区别

    数据类型 int是基本数据类型,Integer是int的包装类,属于引用类型 初始值 int的初始值为0,Integer的初始值为null 存储位置 int是直接存储在栈中的,In…

    数据库 2023年6月6日
    095
  • Python学习笔记(八)–Django框架

    1.什么是框架? 框架就是程序的骨架,主体结构,也是个半成品。 2.框架的优缺点 可重用、成熟,稳健、易扩展、易维护。 3.Python中常见的框架 (1)大包大揽Django被官…

    数据库 2023年6月16日
    0115
  • 银河麒麟V10安装MySQL8028

    记一次成功安装MySQL8028到银河麒麟V10,并实现远程访问的方法 工具/原料 数据库下载地址(实验版如图): [En] Download address of the dat…

    数据库 2023年5月24日
    092
  • IPFS 集群部署

    IPFS 和 IPFS-Cluster 默认的端⼝:IPFS: 4001 – 与其他节点通信端⼝ 5001 – API server 8080 – Gateway server I…

    数据库 2023年6月9日
    082
  • 软件测试基础理论(2)

    一, 为什么要进行软件测试 为了通过软件&amp…

    数据库 2023年6月16日
    087
  • 员工离职困扰?来看AI如何解决,基于人力资源分析的 ML 模型构建全方案 ⛵

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 机器学习实战系列:https://www.s…

    数据库 2023年6月14日
    090
  • SQL Server中STATISTICS IO物理读和逻辑读的误区

    SQL Server中STATISTICS IO物理读和逻辑读的误区 大家知道,SQL Server中可以利用下面命令查看某个语句读写IO的情况 SET STATISTICS IO…

    数据库 2023年6月9日
    077
  • Git

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    093
  • 草图?不管黑猫白猫,能把你的设计理念讲清楚才行

    我在日常工作中,经常要参加一些技术活动,或被拉去参加一些需求会或运营会,时间比较分散。 上周在参加一个代码评审时,发现程序上该复用的没有复用,却写了两份逻辑几乎相同的代码。另外,还…

    数据库 2023年6月9日
    075
  • 容器化 | 在 Rancher 中部署 MySQL 集群

    我们已经介绍了如何在 Kubernetes 和 KubeSphere 上部署 RadonDB MySQL 集群。本文将演示如何在 Rancher[1] 上部署 RadonDB My…

    数据库 2023年5月24日
    0118
  • Java8Stream流2

    上期对stream流大致总结了一下,后面又做了一些练习,大家可以参考一下。 首先需要建一个 Product的实体类,后面会用到 @Data @AllArgsConstructor …

    数据库 2023年6月11日
    080
  • Dubbo源码(八)-负载均衡

    前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)…

    数据库 2023年6月11日
    079
  • CSS样式

    css概述 层叠样式表(cascading style sheet) 层叠是指==将多个样式施加在一个元素(标签)上== 作用: 美化页面 将html代码与样式代码分离 好处: 功…

    数据库 2023年6月16日
    092
  • Linux 下重启 PHP 服务、nginx 服务

    一、重启 PHP 服务 service php-fpm start 开启 service php-fpm stop 停止 service php-fpm restart 重启 二、…

    数据库 2023年6月14日
    071
  • 分布式事务解决方案

    分布式事务解决方案 花开堪折直须折,莫待无花空折枝。 分布式事务是指事务的操作位于不同的节点上,需要保证事务的ACID特性。在分布式架构下,每个节点只知晓自身操作的成功与失败,无法…

    数据库 2023年6月14日
    090
  • java读写锁

    工作遇到了金钱计算,需要用到读写锁保证数据安全。记录一下。 单纯读没有限制,读写、写写的时候会有安全问题。 _hashMap_存在并发线程安全问题,而 _hashtable_线程安…

    数据库 2023年6月16日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球