有时候,我们可能会遇到go项目中依赖一些底层的lib c库,这些库是只有linux环境下才有的,而我们本地开发环境一般是windwos系统或者mac os系统,我们也懒得搞一个Linux虚拟机来专门做开发,而且在虚拟机里面开发体验也确实不好,会影响效率。
那么,有没有可能,本地开发,然后代码在远程服务器上运行呢?并且不需要自己上传代码。
可以!现在的开发工具很强大,本篇介绍如何使用GoLand配置远程编译与debug/run。
首先我们需要有一台Linux虚拟机,可以是在aliyun、aws、google cloud、腾讯云、华为云等各种云上购买。如果是公司的项目,一般是跟公司申请一台开发用的虚拟机。
然后需要在Linux虚拟机安装go,并配置go path。
我的go安装路径和go path是:
GOPATH=/root/goproject
GOROOT=/usr/local/go
接下来,我们使用GoLand打开我们的go项目,配置远程编译运行。
我的GoLand版本为GoLand 2023.1.1。
一、GoLand右上角点击编辑配置。
二、点击‘+’号,选择Go Build。
三、Run on选择SSH。
四、在弹窗中输入Linux虚拟机的IP和ssh端口号、ssh用户名,点击Next。
五、输入ssh的密码,点击Next。
六、这一步会尝试使用ssh连接到linux虚拟机,并自动执行命令获取go root和go path、以及go版本等信息。等待完成后点击Next。
七、勾选Use rsync,Project path on target选择项目源码同步到linux上的根目录,这个配置是共用的,其它go项目选择远程编译运行选择这台虚拟机的时候也是用这个配置。Go Executable为前一步自动获取的go安装路径,如果版本不对,可以自己修改使用其它版本的路径。GOPATH也是上一步自动获取的,也可修改。Additional Settings可以配置项目源码对应服务器上的目录,以及编译后生成二进制文件存放的目录,如果不配置那么GoLand会使用自动生成的目录。
八、如果要配置Additional Settings。Project sources directory为配置当前项目源码同步在服务器上的路径,会覆盖Project path on target配置。Compiled executables directory为配置编译后二进制可执行文件的存放的路径。
九、由于我们项目需要在linux上才能编译成功,所以才用到远程编译运行的功能。因此我们需要勾选Use all custom build tags ,然后勾选Build on remote target(必须先勾选Use all custom build tags才会出现这个选项)。
现在,当我们点击GoLand的RUN或DEBUG图标时,GoLand就会自动同步代码到linux虚拟机上,并自动编译然后运行。