mac上vscode配置go开发环境_快速配置Go 开发环境

如果你刚转Go开发,可能会碰到"go get拉取依赖报错"、"ide拉包超时"这样的问题。
调好一些配置才能流畅的用Go开发,本文对此做了介绍

下载

Go官网被墙了,我从官网下载后上传到了百度云盘,链接如下:

Go 1.14.3 mac 提取码: 5nmn​pan.baidu.com Go 1.14.3 linux 提取码: eg9m​pan.baidu.com

将go 命令放入path

解压下载的压缩包,得到文件夹 gogo命令在go/bin/go。假设go文件夹在你的家目录,

  • 对于mac,运行命令:echo "PATH=$PATH:~/go/bin" >> ~/.bash_profile
  • 对于ubuntu,运行命令:echo "PATH=$PATH:~/go/bin" >> ~/.bash_rc

此时启动一个新shell,运行go version,可看到:

ccae483d03483d7fc064f76646d01a16.png

说明:将go命令所在目录加入path中,从而可在任意位置执行go命令

配置go mod环境变量(以拉到被墙的包)

export GOPROXY=https://goproxy.cn,direct
export GO111MODULE=on
  • 对于mac,将如上代码写入~/.bash_profile,复制粘贴进去即可
  • 对于ubuntu,将如上代码写入~/.bash_rc

启动一个新shell,运行命令go get golang.org/x/tools/cmd/callgraph,相应包安装成功:

4412c301e1e844f49227ffbbc57094e2.png

说明:

  1. GOPROXY=https://goproxy.cn,direct的作用是:使用 "goproxy.cn" 作为拉取依赖的代理,当请求的包不存在时跳过代理(如不设置,默认代理为一个被墙的地址:"proxy.golang.org")
  2. GO111MODULE=on的作用是:GO111MODULE的默认值为auto,即:仅当当前目录下有go.mod文件,才使用GOPROXY下载包。将该值设置为on可确保在任何地方使用proxy拉包,从而不会有拉不到被墙的包的情况

详情参考:干货满满的 Go Modules 和 goproxy.cn

配置GOPATH(以便在命令行直接运行go get安装的命令)

export GOPATH=~/.go
export PATH=$PATH:$GOPATH/bin
  • 对于mac,将代码写入~/.bash_profile,复制粘贴进去即可
  • 对于ubuntu,将代码写入~/.bash_rc

启动一个新shell,执行go get golang.org/x/tools/cmd/callgraph,再执行which callgraph可以看到 callgraph的安装位置

f077cc058c5c82880331384c4520e89c.png

说明:

如上文示例,执行go get golang.org/x/tools/cmd/callgraph后,

  1. callgraph默认安装在$GOPATH/bin/callgraph ,没有配置的情况下运行callgraph显示command not found,需要将$GOPATH/bin加入path
  2. GOPATH日后主要存放go get安装的依赖,最好文件夹命名以"."作为前缀隐藏起来,其默认值为~/go,我习惯更改为~/.go

配置private git仓库

默认私有仓库的依赖(例如公司内部gitlab仓库)是无法用go get拉取到的,假设私有仓库的hostname为http://git.mycompany.net,需要做如下配置:

  1. 运行命令:git config --global url."git@git.mycompany.net:".insteadOf "https://git.mycompany.net/"
  2. 对于mac,运行命令:echo "GOPRIVATE=git.mycompany.net" >> ~/.bash_profile
    对于ubuntu,运行命令:echo "GOPRIVATE=git.mycompany.net" >> ~/.bash_rc

说明:

  1. 配置git,访问http://git.mycompany.net时使用git协议(而不是https),从而获得ssh私钥提供的身份信息。否则会因为缺失身份信息而无法拉取依赖
  2. 配置GOPRIVATE环境变量,标记域名http://git.mycompany.net的包属于私有仓库,不做module的sum校验,否则拉取私有库会失败

详情参考:stackflow相关问题

配置IDE(使IDE能够自动拉取依赖)

大部分Go开发可能会使用Goland。由于习惯,我使用Intellij,配置过程类似。如下:

7fbe5df3bc782377927db48117bb963b.png

f0b80e735c846e5876a795ca5ee3a259.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值