准备
整体为Windows下使用IDEA编写Java程序,而包需要上传到Linux服务器运行,本机没有完整运行环境(同理可用于Mac,Mac配置rsync更简单,实际上我免密都没有做就配置成功,且不知道为什么,Mac使用起来rsync的效率比Windows高非常多)。
- WIN10:其它windows版本可能需要安装openssh;
- Linux服务器:完整环境所在,用于调试Java程序;
- IDEA新版(当前使用2021.2):支持run target功能,见下图。
本文目的
直接配置使用SSH非常简单,没有记录必要,但直接配置而不使用rsync功能会导致每次执行IDEA都会向服务器上传大量jar包,效率极慢,因此这里主要记录Windows如何配置IDEA run target on rsync。
过程
服务端
yum install rsync
# 我的配置文件
uid=root
gid=root
max connections=10
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
secrets file=/etc/rsyncd.passwd
#本机上运行的数据库备份的模块配置
[idea]
comment=idea
path=/root/test
read only = no
exclude = test
auth users = root
# secrets file=/etc/rsyncd.passwd
服务端配置参考:https://www.cnblogs.com/jtlin/p/6018776.html
Windows客户端
-
安装文件见:链接:
https://pan.baidu.com/s/1j5Qobv0kmASABN_w-qSlDQ
提取码:ahzc
安装cwRsync_4.2.0_Installer.exe -
将bin目录添加到环境变量中,如下图:
-
win + r打开cmd,cd 到 D:\Program Files (x86)\cwRsync\bin,然后执行ssh-keygen.exe -t dsa,注意默认的键储存路径是不可用的,需要手动输入个位置,如C:\Users\yun/.ssh/id_rsa;之后会在该文件夹下会出现两个文件“id_dsa和id_dsa.pub”,将id_dsa.pub上传到服务器的~/.ssh中,cat id_dsa.pub >> authorized_keys做免密登录;
-
此时因为csRsync的ssh.exe执行后会到默认/home/xx/处找ssh的配置文件,在Windows的IDEA上会出错,**因此重点来了,**将C:\Windows\System32\OpenSSH中的ssh.exe复制到D:\Program Files (x86)\cwRsync\bin下替换原ssh.exe文件;
-
打开cmd,执行以下命令,看是否能够出现文件列表;
“D:\Program Files (x86)\cwRsync\bin\rsync.exe” -n -e "ssh -p 22 " root@hadoop101:
- 如果能得到上述结果,则说明rsync已经配置成功,之后就是常规的配置IDEA Run target了,配置完成后有Use rsync的选框,勾选再测试,成功即完成了配置。
试用
build会出现下列信息(WARNING信息可能是版本问题)
在Windows上实际使用感觉并没有太好,但因为公司服务器公网是按流量计费的,使用该方法会节约很多流量,还是值得的;而使用Mac则体验和本地已经没有多少区别。
其中差异我不确定是否是因为我找的软件版本和Linux服务端的包版本有冲突导致的,如果有优化想法请告诉一声,感谢~