JetBrains Goland配置代码自动同步到linux服务器

Goland配置自动同步代码使用scp

原理描述

同步文件和目录到服务器的原型是

scp localfile user@servername:/serverfile
scp -r localdir user@servername:/serverdir

从服务器下载文件和目录到本地的原型是

scp  user@servername:/serverfile localfile
scp -r  user@servername:/serverdir localdir

因为要使用自动同步,我们需要配置免密scp,需要将本地的ssh秘钥对中的公钥保存到服务器的~/.ssh/authorized_keys中。

自动上传使用goland中的file watcher插件,
从服务器下载使用goland中的External Tools.

前期准备:

  • goland所在系统本地安装scp
  • 实现scp免密操作服务器文件
  • goland安装好file watcher插件

配置自动上传:

Goland->File->Settings打开界面选择Tools->FileWatchers点击+,新增watcher,类型选择custom,填写内容如下图:
JetBrains Goland配置代码自动同步到linux服务器_第1张图片
Program中选择scp所在路径。
Arguments中填写:

-P 1122 -i c:\users\administrator\.ssh\id_rsa $FilePath$ [email protected]:/yourgopath/src/github.com/kardianos/govendor/$/FilePathRelativeToProjectRoot$

$/FilePathRelativeToProjectRoot$表示linux目录分隔符表示的文件相对路径,可在InsertMacro中看到该变量。
$FilePath$ 表示本地文件路径。file watcher监测到的要保存的当前文件。
-P 表示scp使用的端口。
-i c:\users\administrator\.ssh\id_rsa 表示ssh免密登录的本地私钥。

效果:
在本地编辑后,通过file watcher自动同步到服务器。

配置下载代码

Goland->file->settings->Tools->External Tools-> + 新增工具
JetBrains Goland配置代码自动同步到linux服务器_第2张图片
新工具名为downloadfile149
Program中填写scp路径
Arguments中填写:

 -P 1122 -i c:\users\administrator\.ssh\id_rsa $FilePath$ [email protected]:/yourgopath/src/github.com/kardianos/govendor/$/FilePathRelativeToProjectRoot$

这个命令只能同步文件,不能同步目录,为了同步目录,需要再增加一个External Tool名为downloaddir149,对应的Arguments为:

 -r -P 1122 -i c:\users\administrator\.ssh\id_rsa [email protected]:/yourgopath/src/github.com/kardianos/govendor/$/FilePathRelativeToProjectRoot$ $FileParentDir$ 

效果:
在左侧projects下的目录或文件上右键->External Tools中可以选择使用:
JetBrains Goland配置代码自动同步到linux服务器_第3张图片

你可能感兴趣的:(golang)