SpringBoot依赖和代码分开打包的实现步骤

 更新时间:2023年10月26日 11:50:13   作者:每天吃八顿  
本文主要介绍了SpringBoot依赖和代码分开打包的实现步骤,,这种方法将依赖和代码分开打包,一般更新只有代码修改,Pom文件是不会经常改动的,感兴趣的可以了解一下

前言

在公司的项目中,一个SpringBoot工程可能就上百MB,这时候当线上网速不佳的时候,部署起来就十分的痛苦了。。经常等好久才能上传完毕,接下来我来教大家一个SpringBoot工程代码和依赖分开打包的方法。这种方法将依赖和代码分开打包,一般更新只有代码修改,Pom文件是不会经常改动的~

效果展示

分开打包前

足足有191MB

分开打包后

只剩3.5MB了

减负的效果拔群

创建新工程

工程结构

我新建了一个SpringBoot工程,目录结构如下。

测试工程是否可用

就是一个非常简单的工程,只有一个Controller,让我们来启动然后调用一下TestController里面的test方法

调用结果

调用结果是正常的,也通过MyBatis-plus读取到了数据的内容

分离依赖

target目录结构

当我们运行成功后,在项目的target目录下,会自动给我们生成项目名-1.0-SNAPSHOT.jar文件,如图一所示。如果没有生成的话,大家可以点击右侧的Maven生成,如图二所示。

打开文件拓展名

这里我们是生成了.jar文件的,那就进入到下一步,将jar文件重命名成.zip文件,如果有同学没打开文件扩展名的选项,可以在图一所示的地方打开文件扩展名选项即可。

修改文件拓展名

这个时候我们已经将.jar改成.zip了,双击打开或者使用压缩工具打开都可以。

如果改成zip报错可以改成rar

如果打开时候提示报错,可以将.zip换成.rar试试哦

压缩包目录

打开后的文件目录如下图所示

解压出lib目录

接着我们选择第一个文件夹BOOT-INF,然后可以看到它下面有两个二级文件夹,其中一个就是lib,这个就是我们想要的文件夹。我们可以双击打开看看里面存放的都是什么文件。

我们打开后发现里面都是依赖文件,所以这就是我们想要的依赖包

然后我们把这个lib依赖解压出来,解压位置随意。

修改Pom文件

将lib文件夹解压出来后,我们开始修改Pom文件,这个时候我们已经将依赖分离出来了,我们只需要打包代码即可。
所以我们修改Pom文件分两种情况

情况一

在Pom文件下的build节点下已经有pluginManagement节点,找到下面这个节点,将图片红框中的几行复制进去

情况二

在Pom文件下的build节点下还没有pluginManagement节点,直接将我下面提供的pluginManagement节点复制到build节点底下即可。

<pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.3.2.RELEASE</version>
                    <configuration>
                        <finalName>boot-template</finalName>
                        <layout>ZIP</layout>
                        <includeSystemScope>true</includeSystemScope>
                        <executable>true</executable>
                        <includes>
                            <include>
                                <groupId>nothing</groupId>
                                <artifactId>nothing</artifactId>
                            </include>
                        </includes>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>

重新打包

接下来第一步先点击右上方的加载Maven更改,或者使用快捷键Ctrl+shift+o,然后点击右侧Maven菜单下的生命周期里面的package即可

图一是控制台的输出,图二是打包后的文件,我们可以看到这次打包后只有132KB

测试jar包

我们接下来测试分离完后的jar包是否正常使用,我们将lib文件夹和jar包放在同一个目录下面,然后打开一个cmd窗口,输入下面命令–记得将IDEA里面的工程停了,不然会报端口被占用哦。

java -Dloader.path=./lib -jar boot-template.jar

命令解释:-Dloader.path 用来指定lib存放位置,下面是运行成功截图~

测试接口

接着我们来测试接口功能是否正常,我们回到接口工具重新调用了一次test接口,发现返回的数据没区别

在CMD里面我们也可以看到,连接MySQL也没啥问题。到此本文结束,如有问题请可以在评论区发出来或者私信我哦~

备注

细心的小伙伴发现,如果我们改了Pom文件要怎么办呢?当然是把之前加的那几行去掉,然后重新解压一次lib包即可

到此这篇关于SpringBoot依赖和代码分开打包的实现步骤的文章就介绍到这了,更多相关SpringBoot依赖和代码分开打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 代理模式:JAVA静态代理和动态代理的实例和实现详解

    代理模式:JAVA静态代理和动态代理的实例和实现详解

    这篇文章主要给大家介绍了关于Java静态代理和动态代理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • Java基础之java处理ip的工具类

    Java基础之java处理ip的工具类

    这篇文章主要介绍了Java基础应用,使用java处理ip的工具类的相关资料,需要的朋友可以参考下
    2014-10-10
  • 情人节写给女朋友Java Swing代码程序

    情人节写给女朋友Java Swing代码程序

    这篇文章主要为大家分享了情人节写给女朋友的java小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,祝大家每天都是情人节
    2018-02-02
  • Spring Boot中Elasticsearch的连接配置原理与使用详解

    Spring Boot中Elasticsearch的连接配置原理与使用详解

    在Spring Boot中,我们可以通过Elasticsearch实现对数据的搜索和分析,本文将介绍Spring Boot中Elasticsearch的连接配置、原理和使用方法,感兴趣的可以了解一下
    2023-09-09
  • Java软件编程培训机构靠谱吗

    Java软件编程培训机构靠谱吗

    随着网络信息化的快速发展,Java培训受到越来越多人的青睐,目前Java工程师的薪资水平在不断攀升,但是有好多企业还是招不到合适的人才,为什么呢
    2017-04-04
  • Java之Jackson的基本使用案例讲解

    Java之Jackson的基本使用案例讲解

    这篇文章主要介绍了Java之Jackson的基本使用案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • SpringBoot一个接口多个实现类的调用方式总结

    SpringBoot一个接口多个实现类的调用方式总结

    这篇文章主要介绍了SpringBoot一个接口多个实现类的调用方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • java中 IO 常用IO操作类继承结构分析

    java中 IO 常用IO操作类继承结构分析

    本篇文章小编为大家介绍,java中 IO 常用IO操作类继承结构分析。需要的朋友参考下
    2013-04-04
  • 通过System.getProperty配置JVM系统属性

    通过System.getProperty配置JVM系统属性

    这篇文章主要介绍了通过System.getProperty配置JVM系统属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SpringBoot统一数据返回的方法实现

    SpringBoot统一数据返回的方法实现

    在前后端交互过程中,为了便于数据处理,后端数据需要进行统一封装返回给前端,这种做法不仅方便前后端沟通,降低了沟通成本,还有助于项目的统一维护和后端技术部门的规范制定,本文就来介绍一下
    2024-10-10

最新评论