這是因為獲取golang.org/x/...時需要翻墻,而我這里沒有翻墻,不過沒關(guān)系
設(shè)置下代理即可:
// bash mac
export GOPROXY=https://goproxy.io
// powershell windows
$env:GOPROXY = https://goproxy.io
然后再當(dāng)前目錄下
用powershell 執(zhí)行命令:
相關(guān)命令:
go mod init:初始化modules
go mod download:下載modules到本地cache
go mod edit:編輯go.mod文件,選項有-json、-require和-exclude,可以使用幫助go help mod edit
go mod graph:以文本模式打印模塊需求圖
go mod tidy:檢查,刪除錯誤或者不使用的modules,下載沒download的package
go mod vendor:生成vendor目錄
go mod verify:驗證依賴是否正確
go mod why:查找依賴
go test 執(zhí)行一下,自動導(dǎo)包
go list -m 主模塊的打印路徑
go list -m -f={{.Dir}} print主模塊的根目錄
go list -m all 查看當(dāng)前的依賴和版本信息
linux 編譯
![](/d/20211017/4039ee958b417d532df1527a6d428e56.gif)
GOOS=linux;GOARCH=amd64;CGO_ENABLED=0
-o 指定編譯的輸出文件目錄
補充:win10下go mod 與gopath
GOPATH跟GOROOT不同,它是我們指向的工作空間。我們運行一個項目時需要導(dǎo)入依賴包,默認(rèn)情況下會在我們配置的go環(huán)境的src文件下去查找,比如本身自帶的“fmt”,“os”諸如此類等都在此包下
![](/d/20211017/d1738d7e2c6abe0ea6333240c0a94a9c.gif)
go對自己配置的包的引用有嚴(yán)格的限制,同個目錄的包是一樣的,一般包名都一目錄名命名,不同目錄間的包可以相互引用但前提是你這個項目需要放在GOPATH路徑下的src文件內(nèi)才可以相互引用 在其它的目錄下是引用不了的。
對于一些項目需要從github上面獲取依賴這樣的上面的方式效率可能不高,因為國內(nèi)go get因為網(wǎng)絡(luò)問題可能下載get不到或者太慢,這時候就可以摒棄gopath轉(zhuǎn)而使用go mod了,不在需要在gopath下新建項目了,可以在任何你喜歡的目錄下新建,win10具體操作如下:
win +r打開cmd
go env -w GO111MODULE=on(默認(rèn)模式為auto,還有off模式 on模式是使用模塊,gopath不生效;off不適用模塊,gopath生效;自己寫的一些項目如果不需要從網(wǎng)上導(dǎo)入依賴的話可以切換成go env -w GO111MODULE=off模式,反正就是一條命令,不用再涉及其它的環(huán)境配置)
![](/d/20211017/020b777a3fabd92c7ca233a1f2592d38.gif)
然后就可以在任意路徑新建項目了,這里比如我在D:\file\github\golang\code\chapter2\新建一個sample項目,然后再
D:\file\github\golang\code\chapter2\sample下新建一個main.go文件(這是項目的起點)
然后在該目錄下打開cmd
![](/d/20211017/7331e7a438d0d4e8fd0c058ce927cf71.gif)
我這里是因為已經(jīng)生成了所以提示exists build命令也可以指定單個.go文件進(jìn)行編譯,但是如果是在main.go起點文件的目錄下build,它可以循著main.go中導(dǎo)入的依賴將項目中的其它.go文件一同build
會在該目錄下生成一個go.mod文件,現(xiàn)在試下你的項目能不能運行
可以在cmd下執(zhí)行g(shù)o env這里面有很多參數(shù)可以查看
![](/d/20211017/56e8d14243938fd14429748fbf2fa841.gif)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- go自動下載所有的依賴包go module使用詳解
- Golang 1.16 中 Modules的主要變化更新
- 使用Go module和GoLand初始化一個Go項目的方法
- goland使用go mod模式的步驟詳解
- xorm根據(jù)數(shù)據(jù)庫生成go model文件的操作
- Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序
- golang使用 gomodule 在公共測試環(huán)境管理go的依賴的實例詳解