go mod代理和小技巧


  • 代理 go mod的代理比較出名的有阿里的goproxy,可以基於它搭建一個私有的代理,管理內部的私有代碼,而且微軟提供了一個公共的代理,我們可以直接使用 Linux export GOPROXY="https://mirrors.aliyun.com/goproxy/" export GO111MODULE=on Windows 設置GOPROXY和GO111MODULE環境變量 這樣google下的包可以順利下載了,速度還挺快的。
  • 小技巧

逃離GOPATH

畢竟有時候一個項目的代碼可能使用多種語言,按照以前的方式,就非得把項目的代碼都放在gopath下了,讓我這種強迫症的人,很不爽。 現在發現使用go mod時,可以不用把代碼放到GOPATH下面了,真是方便了許多。

人性化提示

有時候我們打開了一篇較舊的文章,使用了老的命令,這時候 go mod也會給出新命令的提示,比如 <br /> $ go mod -fmt<br /> go: go mod -fmt is now go mod edit -fmt</p><p>$ go mod -init -module example/test<br /> go: go mod -init is now go mod init<br /> 意思是說,go mod -fmt 現在是 go mod edit -fmt, go mod -init 現在是 go mod init,常見的命令可以參考 這篇文章

指定版本

地址后面加"@",可以是commit、分支、tag等 go get github.com/someone/some_module@af044c0995fe

版本管理

代碼里提交go.mod和go.sum文件,其他開發人員執行 go mod download

import路徑

使用go mod后,import路徑會以go mod init時的mod名稱為該項目的根目錄,比如:

go mod init test

在goland中在工程目錄,mod名會以[]標出來,比如上圖左側的'test',

導入mod內部的代碼則是以go.mod所在目錄為根目錄,且以mod名開始,而不是項目的目錄,如上圖右側

依賴整理

go mod tidy

GoLand配置

1、新建項目 (更新,請使用阿里雲的goproxy)

2、舊項目

3、常見錯誤

go: modules disabled inside GOPATH/src by GO111MODULE=auto; see 'go help modules'

go mod需要在GOPATH外

go mod init: go.mod already exists

go.mod文件已經存在

zip: not a valid zip file

代理服務器緩存的zip 錯誤,可以臨時關閉代理,go get的時候加上GOPROXY=''即可,即  GOPROXY=''   go get   xxx/pkg


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM