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依赖和代码分开打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mybatis中实现枚举自动转换方法详解

    mybatis中实现枚举自动转换方法详解

    在使用mybatis的时候经常会遇到枚举类型的转换,下面这篇文章主要给大家介绍了关于mybatis中实现枚举自动转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08
  • java中form以post、get方式提交数据中文乱码问题总结

    java中form以post、get方式提交数据中文乱码问题总结

    这篇文章主要介绍了java中form以post、get方式提交数据中文乱码问题总结,需要的朋友可以参考下
    2014-10-10
  • java实现微信公众号消息推送的方法详解

    java实现微信公众号消息推送的方法详解

    这篇文章主要为大家详细介绍了如何利用java实现微信公众号消息推送的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • 实战指南:Java编写Flink SQL解决难题

    实战指南:Java编写Flink SQL解决难题

    想知道如何利用Java编写Flink SQL解决难题吗?本指南将为您揭示最实用的技巧和策略,让您轻松应对挑战,跟着我们一起探索,让Java和Flink SQL成为您问题解决的得力助手!
    2023-12-12
  • SpringBoot集成Spring security JWT实现接口权限认证

    SpringBoot集成Spring security JWT实现接口权限认证

    这篇文章主要介绍了SpringBoot集成Spring security JWT实现接口权限认证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java经典排序算法之二分插入排序详解

    Java经典排序算法之二分插入排序详解

    这篇文章主要为大家详细介绍了Java经典排序算法之二分插入排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Java 批量删除Word中的空白段落示例代码

    Java 批量删除Word中的空白段落示例代码

    这篇文章主要介绍了Java 批量删除Word中的空白段落,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • SpringCloud OpenFeign概述与使用

    SpringCloud OpenFeign概述与使用

    OpenFeign源于Netflix的Feign,是http通信的客户端。屏蔽了网络通信的细节,直接面向接口的方式开发,让开发者感知不到网络通信细节。所有远程调用,都像调用本地方法一样完成
    2023-01-01
  • java springmvc实现验证码功能

    java springmvc实现验证码功能

    这篇文章主要为大家详细介绍了java springmvc实现验证码功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Java算法真题详解运用单调栈

    Java算法真题详解运用单调栈

    一般使用单调栈无非两个方向,单调递减,单调递增。单调递增栈:存进去的数据都是增加的,碰到减少的时候,这时就要进行操作了。单调递减栈:存进去的数据都是减少的,碰到增加的时候,这时就要进行操作了,下面我们在真题中运用它
    2022-07-07

最新评论