Go path与Go module

Go Path

go path顾名思义,需要一个环境变量 $GOPATH

  • $GOPATH/src 存放项目源代码
  • $GOPATH/bin 存放项目可执行文件

网络问题

我们经常会遇到 golang.org/x/... 下载失败的问题,这里提供一下我的解决方式
科学上网已是程序员必备技能,所以可以按照如下设置
注:科学上网还可以加速github上的代码拉取速度

平台 命令
Windows Cmd set http_proxy=socks5://127.0.0.1:1080
set https_proxy=socks5://127.0.0.1:1080
Windows PowerShell $env:http_proxy="socks5://127.0.0.1:1080"
$env:https_proxy="socks5://127.0.0.1:1080"
Linux export http_proxy "socks5://127.0.0.1:1080"
export https_proxy "socks5://127.0.0.1:1080"

Go Module

首先说一句,go module是以后的趋势,能使用go module的最好使用它

go module涉及到一个环境变量 GO111MODULE

作用
on 任何情况都启用 go module
off 任何情况都不启用 go module
auto 如果当前项目根目录存在 go.mod 文件,则启用 go module

在 go module 的项目中执行go get,系统会默认把依赖下载到 $GOPATH/pkg,并且编译到 $GOPATH/bin

网络问题

go module同样也会遇到网络问题,但是它的解决方式就优雅了许多,不需要科学上网工具

  • 如果你的golang版本是1.3或以上,只需要执行下面一条命令
 go env -w GOPROXY=https://goproxy.cn,direct

这句话不会改变你的系统环境变量,它会把配置写到 ~/AppData/Roaming/go/env

  • 如果低于1.3,那么只需要设置环境变量$GOPROXYhttps://goproxy.cn,direct

你可能感兴趣的:(Go)