使用vscode搭建Go开发环境
本文来总结和记录如何搭建一个基本的 Go 开发环境。
Go 编译环境安装和配置
安装 Go 环境,非常简单,只需要下载对应版本的二进制包,解压安装,并设置对应的环境变量即可
1 | export gover="1.23.2" |
1. 下载安装包
1 | wget https://go.dev/dl/go${gover}.linux-amd64.tar.gz \ |
2. 解压安装,命令如下
1 | tar -xvzf /usr/local/src/go${gover}.linux-amd64.tar.gz -C /usr/local/ |
3. 设置环境变量
1 |
|
Go 语言是通过一系列的环境变量来控制 Go 编译器行为的,我们要了解么个环境变量的含义
GOROOT
Go 语言编译工具、标准库等的安装路径GOPATH
Go 工作目录,也就是编译后二进制文件的存放目录和 import 包时的搜索路径GO111MODULE
通过设置 on、off、auto 来控制是否开启 Go Modules 特性GOPROXY
包下载代理服务器GOPRIVATE
指定不走代理的 Go 包域名GOSUMDB
它的值是一个 web 服务器,该服务可以用来查询依赖包指定版本的哈希值,保证未被篡改
4. 验证 Go 安装是否成功
1 | $ souce .bashrc |
上述命令能够成功输出版本信息,说明 Go 编译环境安装成功。
Go依赖工具的安装
我们在 Go 语言开发时,会用到一些 Go 工具,比如函数调转时会用到 guru、godef 工具,在格式化代码时会用到 goimports 等工具,所以这里我们直接安装常见的依赖工具。
直接使用下边命令安装即可
1 | go install github.com/cweill/gotests/gotests@latest |
Git安装与配置
可能你会奇怪为什么在这里要强调 git 的安装和配置呢?
在平时 Go 开发中,经常使用 go get
命令来安装依赖和工具,由于低版本的 git 不支持 --unshallow
参数,而 go get
在安装 Go 包时会用到 git fetch --unshallow
命令,因此我们要确保一个高版本的 git
- 安装更高版本的 git,可以通过源码编译安装,更通用一些,具体参考 git 源码安装
- 安装后,常用的一些基本配置,具体参考 git 常见基本配置
使用 vscode 开发 Go 代码
(一)安装vscode
直接从 vscode 官网 下载 安装包即可。
(二)安装插件
我们平时的开发环境大多以 Linux 为主,所以本文介绍如何通过 vscode 远程连接 Linux 服务器进行 Go 代码开发。
首先我们需要安装几个 vscode 插件:
Remote-SSH
:远程连接 SSH 服务器,并打开远程目录;Remote Explorer
:提供 SSH 连接浏览与管理功能;Remote-SSH : Editing Configuration Files
:支持编辑 SSH 相关配置文件;
(三)连接远程Linux服务器
打开 vscode 编辑器,点击左侧「远程资源管理器」,选择 SSH 后边的 + 按钮,在弹出的输入框中输入 Linux 服务器信息
1 | ssh root@192.168.10.12 -A |
然后回车,选择保存配置的文件位置,我的笔记本是 Mac,所以选择的是 /User/jack/.ssh/config
回车确认。
接着在编辑器右下角,提示 已添加主机 ,点击 连接 按钮,接下来 vscode 会在 Linux 服务器下载远程所需要的服务程序,耐心等一会。
如果没有问题,连接成功会新打开一个 vscode 窗口。
(四)使用 vscode 开发 go 代码
成功远程连接 Linux 服务后,选择 打开 按钮,选择 Linux 服务器上的工作目录即可。
新建一个 hello.go
文件,这时 vscode 会提示我们在远程 Linux 服务器上安装 Go 插件,点击安装即可,该插件是 Go 开发必备的插件,由微软官方团队开发,放心安装。
在 Go 插件安装完毕后,再把 Go 开发中需要使用的几个工具安装上。使用快捷键 Shift + Command + P
调出命令输入框,输入Go: Install/Update Tools
,回车后,选中所有的工具,点击 OK 即可安装。
安装插件后,我们可以写一个最简单的 Hello 程序来测试我们的开发环境是否成功。新建 hello.go 文件如下:
1 | package main |
打开终端工具
1 | $ go mod init hello |
可以使用 vscode 快乐地写代码了。
使用 vscode 调试 Go 代码
调试 Go 代码。