go: cannot use path@version syntax in GOPATH mode問題解決
go mod作爲官方的依賴管理工具,類似於maven這種本地緩存庫的管理方式,其主要是通過GOPATH/pkg/mod下的緩存包來對工程進行構建。
問題:
執行go get github.com/golang/protobuf/[email protected]時報錯
go get github.com/golang/protobuf/protoc-gen-go@v1.3.2
go: cannot use path@version syntax in GOPATH mode
解決:需要開啓 GO111MODULE,默認是 auto,
打開.zshrc,(注意:查看下自己當前用的是哪個shell,是bash的話需要.bash_profile中編輯)
添加 export GO111MODULE=on 即可。修改完記得source
export GO111MODULE=on
source
source ~/.zshrc
原因:
go mod 可以通過GO111MODULE來控制是否啓用,GO111MODULE有一下三種類型。
- on 所有的構建,都使用Module機制
- off 所有的構建,都不使用Module機制,而是使用GOPATH和Vendor
- auto 在GOPATH下的工程,不使用Module機制,不在GOPATH下的工程使用
參考:https://github.com/kubernetes/client-go/blob/master/INSTALL.md#enabling-go-modules