springboot项目瘦身

前因

由于我司项目采用的是基于springboot开发的项目,所以每一个模块都是打成jar包去进行全量更新部署的,如果是在内网的话还好,但是我们是买的阿里云的服务器,部署在公网上的,在网络带宽不稳定的情况下,一个小小的改动就需要去上传发布一个一百多兆的jar包文件,显得十分臃肿。

我们之前使用Tomcat在部署Web工程的时候,可以进行增量更新,就是改动哪一个文件,就把相应的class文件更新上去,重启Tomcat即可。调研发现SpringBoot也是可以采用增量更新,给项目做瘦身处理的。之所以SpringBoot编译出来的Jar包很大,是因为里面依赖了很多外部依赖库(jar包)占用了绝大多数的空间,如下图:
在这里插入图片描述在这里插入图片描述

可以发现,我们依赖的这些jar都是固定不变的,所以就没有必要频繁的去全量打包上传了,将这些不变的jar包抽取出来,每次只上传更新变化的,这样就能够减少我们上传更新jar文件大小了。这和模板模式很相似,只关注改动的信息,把不变的信息抽取出来。

具体操作

第一步:将不变的jar包提取出来上传到服务器

正常打包的pom.xml文件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.App</mainClass>
                <layout>ZIP</layout>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    <plugins>
<build>

打过包,找到对应的jar文件,解压文件,将lib包中的文件全部上传至服务器
在这里插入图片描述

上传至服务器的某个文件夹下

在这里插入图片描述

修改pom.xml文件配置文件,使我们编译出来的jar包不含有lib包

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.App</mainClass>
                <layout>ZIP</layout>
                <includes>
                    <include>
                        <groupId>nothing</groupId>
                        <artifactId>nothing</artifactId>
                    </include>
                </includes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    <plugins>
<build>

配置完成后,再次执行编译打包,所以生成的jar包体积变小,如下图所示:
在这里插入图片描述
所以我们再次编译上传时,就只用把我们自己的jar包上传重新部署即可

修改启动脚本命令

#瘦身后的脚本命令
java -Xms128m -Xmx512m -Dloader.path=/a/b/c/lib -jar /a/b/c/xxx-service.jar &
#原先的启动脚本命令
#java -Xms128m -Xmx512m -jar exam-service.jar &

在这里插入图片描述

后面如果需要变更业务逻辑,我们只需轻量的编译工程,可以大大提高项目部署的效率。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值