原因:在使用go get命令后發現下載的包不在src
目錄下生成,而全部到了$GOPATH$/pkg
目錄下
在下面這個目錄下
最主要是下載完后,import還報錯。
此時一頓baidu 猛如虎,終於找到原因所在:參考這篇文章:https://www.cnblogs.com/xiaowu54/p/14538238.html
備注:
官方在 v1.11 中加入了 Go Module 作為官方包管理形式,就這樣 dep 無奈的結束了使命。
最初的 Go Module 提案的名稱叫做 vgo,下面為了介紹簡稱為 gomod。不過在 v1.11 和 v1.12 的 Go 版本中 gomod 是不能直接使用的。
可以通過 go env 命令返回值的 GOMOD 字段是否為空來判斷是否已經開啟了 gomod,如果沒有開啟,可以通過設置環境變量
export GO111MODULE=on 開啟
我的版本為1.15.6, 所以出現了這種情況
Go mod 的正確使用
如何激活Modules
首先要把go升級到1.11及以上
升級后,可以設置通過一個環境變量GO111MODULE來激活modules:
GO111MODULE=off,go命令行將不會支持module功能,尋找依賴包的方式將會沿用舊版本那種通過vendor目錄或者GOPATH模式來查找。
GO111MODULE=on,go命令行會使用modules,而一點也不會去GOPATH目錄下查找。
GO111MODULE=auto,默認值,go命令行將會根據當前目錄來決定是否啟用module功能。這種情況下可以分為兩種情形:當前目錄在GOPATH/src之外且該目錄包含go.mod文件,或者當前文件在包含go.mod文件的目錄下面。
當module功能啟用時,GOPATH在項目構建過程中不再擔當import的角色,但它仍然存儲下載的依賴包,具體位置在$GOPATH/pkg/mod。
在你需要導入第三方包的地方,打開終端輸入go mod init 命名
然后在該文件夾會出現go.mod
文件
比如打開我的代碼目錄---》cmd 命令,然后使用上述go mod init github.com
然后繼續使用go get導入包
操作成功后,上一步動作的go mod 文件會記錄導入的包名稱及版本號,打開goland查看
注意:上面已經使用過go mod init之后,以后每次導入包只需要進入工作區目錄,
第一步:輸入“cmd”。例如:
第二步:在go項目工作區中直接使用go get命令
第三步:然后查看是否在包管理器中
最后還要一步:別忘記配置Goland Modules模塊的使用
打開File--->Settings---->Go Modules(vgo) ---->然后 Enable,並輸入proxy地址:https://goproxy.io
最后發現包可用了。問題解決,顏色變綠了