今天下載b站的kratos 框架,按照教程執行了
GO111MODULE=on && go get -u github.com/go-kratos/kratos/tool/kratos
結果在gopath/src下找不到kratos代碼,執行go get命令中途也沒有報錯,后來使用文件搜索在gopath/pkg/mod才找到了。
於是網上一查,當modules 功能啟用時,依賴包的存放位置變更為$GOPATH/pkg
,允許同一個package多個版本並存,且多個項目可以共享緩存的 module。
GO111MODULE
GO111MODULE
有三個值:off
, on
和auto(默認值)
。
GO111MODULE=off
,go命令行將不會支持module功能,尋找依賴包的方式將會沿用舊版本那種通過vendor目錄或者GOPATH模式來查找。GO111MODULE=on
,go命令行會使用modules,而一點也不會去GOPATH目錄下查找。-
GO111MODULE=auto
,默認值,go命令行將會根據當前目錄來決定是否啟用module功能。這種情況下可以分為兩種情形:- 當前目錄在GOPATH/src之外且該目錄包含go.mod文件
- 當前文件在包含go.mod文件的目錄下面。
goland不識別mod中的包