问题来源
做过Java开发的都知道,Java有着丰富的类库,你所想要的功能,几乎都有开源实现。但问题是,依赖库的递归依赖,使得编译出的文件非常庞大。再者,每次重新部署,其实都只做了“相当少”的代码更新。如果是在公网环境,情况会更加糟糕。。。
rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
解决方案
如上所述,既然每次都做了大量的无用功,能不能避免呢?当然可以,rsync就可以做到。本文以Spring Boot程序为例,对于静态文件、PHP、NodeJS等都适用。服务端使用CentOS7.2,客户端Windows10。
步骤
服务端安装
1  | yum install rsync -y  | 
修改配置文件vim /etc/rsyncd.conf
1  | #认证用户名和密码文件的名称和位置  | 
生成密码文件
1  | echo "user1:123456" >> /etc/rsyncd.secrets  | 
添加防火墙例外
1  | firewall-cmd --zone=dmz --add-port=873/tcp --permanent  | 
启动服务
1  | systemctl start rsyncd  | 
编译脚本(build.bat)
1  | @echo off  | 
注意:客户端rsyncd.secrets文件内容为123456。