Go找包的順序
go 找導(dǎo)入包的順序是先在GOROOT下的src目錄查找,如果找不到就在當(dāng)前項目路徑下的src,GOPATH就是當(dāng)前項目路徑
/usr/local/go/src (from $GOROOT)
$GOPATH/src (from $GOPATH)
GOPATH目錄設(shè)置
在goland中,我們設(shè)置項目的GOPATH只需要在 Project GOPATH 中設(shè)置當(dāng)前項目目錄就可以了钥弯,Global GOPATH 不需要設(shè)置竟块,默認(rèn)是全局的GOPATH在這里,我的全局GOPATH是 /Users/zhangyun/go我的項目目錄是/Users/zhangyun/godemo/src/Go_learning,所以我們設(shè)置Project PATH為/Users/zhangyun/godemo
創(chuàng)建項目目錄路徑設(shè)置
在創(chuàng)建項目的時候只要改紅色框內(nèi)的路徑就可以了耕突,src是必須有的,所有的庫都得在src下
單獨關(guān)閉GO111MODULE
在 Goland 的Terminal 中輸入
export GO111MODULE=off
查當(dāng)前項目的 GOPATH 路徑
echo $GOPATH // 在 golang 的 Terminal 中輸入
如果當(dāng)前項目的GOPATH不是當(dāng)前目錄的src前面的路徑评架,那么使用
export GOPATH=當(dāng)前目錄路徑的src前
全局更改GO配置
go env -w 你要改的配置
go env -w GOPATH=$HOME/godemo // 更改全局 GOPATH
go env -w GO111MODULE=off // 關(guān)閉全部 GO111MODULE
go env -w GO111MODULE=on // 啟動全部 GO111MODULE
GOPATH 管理庫多項目管理不同版本庫
在GO中我們開發(fā)多個項目眷茁,可能會用到兩個組開發(fā)項目用同一個支持庫,但是使用的支持庫的版本不一樣纵诞,這個時候就要用到以下方法
我們在各自的項目下新建一個 vendor 目錄上祈,把各自的庫移到 vendor目錄下,這樣在啟動項目的時候,查找?guī)焓紫冗M當(dāng)先前項目的 vendor 目錄查找?guī)斓谴蹋@樣兩個項目就不會出現(xiàn)庫版本不同的問題
~/godemo
- src
- go.uber.org
- atomic
- multierr
- zap
- project1
- vendor
- go.uber.org
- zap // 新版本
- project2
- vendor
- go.uber.org
- zap // 老版本