Go找包的顺序
go 找导入包的顺序是先在GOROOT下的src目录查找,如果找不到就在当前项目路径下的src,GOPATH就是当前项目路径
/usr/local/go/src (from $GOROOT)
$GOPATH/src (from $GOPATH)
GOPATH目录设置
在goland中,我们设置项目的GOPATH只需要在 Project GOPATH 中设置当前项目目录就可以了,Global GOPATH 不需要设置,默认是全局的GOPATH在这里,我的全局GOPATH是 /Users/zhangyun/go我的项目目录是/Users/zhangyun/godemo/src/Go_learning,所以我们设置Project PATH为/Users/zhangyun/godemo
创建项目目录路径设置
在创建项目的时候只要改红色框内的路径就可以了,src是必须有的,所有的库都得在src下
单独关闭GO111MODULE
在 Goland 的Terminal 中输入
export GO111MODULE=off
查当前项目的 GOPATH 路径
echo $GOPATH // 在 golang 的 Terminal 中输入
如果当前项目的GOPATH不是当前目录的src前面的路径,那么使用
export GOPATH=当前目录路径的src前
全局更改GO配置
go env -w 你要改的配置
go env -w GOPATH=$HOME/godemo // 更改全局 GOPATH
go env -w GO111MODULE=off // 关闭全部 GO111MODULE
go env -w GO111MODULE=on // 启动全部 GO111MODULE
GOPATH 管理库多项目管理不同版本库
在GO中我们开发多个项目,可能会用到两个组开发项目用同一个支持库,但是使用的支持库的版本不一样,这个时候就要用到以下方法
我们在各自的项目下新建一个 vendor 目录,把各自的库移到 vendor目录下,这样在启动项目的时候,查找库首先进当先前项目的 vendor 目录查找库,这样两个项目就不会出现库版本不同的问题
~/godemo
- src
- go.uber.org
- atomic
- multierr
- zap
- project1
- vendor
- go.uber.org
- zap // 新版本
- project2
- vendor
- go.uber.org
- zap // 老版本