增量更新jar包的方法

由于现在绝大多数服务都采用spring boot,且在打包时一般选择全量包的形式,因此在服务依赖比较多的情况下,更新/添加其中的一个文件时,会造成很大的麻烦,比如一个服务打完包后,jar文件的体积可能在200M左右,因此在网络条件不好的情况下,频繁更新服务包还是比较麻烦的事情,因此适时进行增量更新,是比较好的方法,也是在应对网络条件不好时的最好选择。

在windows下增量更新可以参考文章。 

https://blog.csdn.net/figo0423/article/details/125045500

文章中需要注意的是,在将增量包装入压缩软件后,压缩方式要改成 存储

Linux下要实现增量更新相对麻烦一些,因此要使用到jar命令,对,就是jar命令,不是java命令。

jar命令也是jdk提供的一个命令行工具。

这里我们以Eureka-Server为例,上传eureka-server.jar到linux服务器,并启动!

 可以看到启动端口时8081。

如果我们需要修改启动端口,可以通过命令行(-D)的形式,也可以更新application.yml文件

这里我们使用第二种方式,首先修改application.yml。

server:
  port: 9999
  context-path: /

spring:
  application:
    name: Eureka-Server

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
  instance:
    prefer-ip-address: true
    instance-id: ${spring.application.name}:${server.port}

这里我们把端口修改为9999。

此时我们重新创建一个路径,并将原来的eureka-server.jar和新的application.yml放到创建好的路径中去。

 使用命令解压jar包

jar -xvf eureka-server.jar

结果如下

 此时将新的application.yml替换到 BOOT-INF/classes/ 下

 此时路径下内容

 接下来执行打包命令

jar -cvf0M eureka-server-new.jar  . (重新压缩,-0是主要的)

这个命令将打出一个eureka-server-new.jar

此时启动eureka-server-new.jar。

java -jar eureka-server-new.jar

 可以看到新打好的jar包已经在新端口上启动。

此时看看我们的路径下有什么

 发现 eureka-server-new.jar的大小比eureka-server.jar大不少。

我们再次新建一个路径,并将eureka-server-new.jar移动到新路径下,然后使用上面的命令解压eureka-server-new.jar看看里面有什么

 我们发现eureka-server.jar在eureka-server-new.jar中,因此eureka-server-new.jar包体积增长了不少。

那么我们重新回到刚才的路径,并且删除eureka-server-new.jar。

此时执行命令

jar -cvf0M eureka-server.jar  .

 此时路径下文件

我们发现新打的eureka-server.jar与原始eureka-server.jar在体积上差异不大

然后启动eureka-server.jar

 发现端口已经更新为9999

jar命令用法

 -c 创建新的归档文件
 -t 列出归档目录和文件
 -x 解压缩已归档的指定(或所有)文件
 -u 更新现有的归档文件
 -v 在标准输出中生成详细输出 / 提供更详细输出信息
 -f 指定归档文件名 / 为压缩包指定名字
 -m 包含指定清单文件中的清单信息
 -e 为捆绑到可执行 jar 文件的独立应用程序
指定应用程序入口点
 -0 仅存储,不压缩,只是打包;不使用任何 ZIP 压缩
 -M 不创建条目的清单文件 META-INF/MANIFEST.MF
 -i 为指定的 jar 文件生成索引信息
 -C 更改为指定的目录并包含其中的文件

列出指定文件的路径:

jar -tvf eureka-server.jar | grep application.yml

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值