win10下go mod配置方式

這是因為獲取golang.org/x/…時需要翻墻,而我這裡沒有翻墻,不過沒關系

設置下代理即可:

// bash mac  
export GOPROXY=https://goproxy.io
// powershell windows 
$env:GOPROXY = https://goproxy.io

然後再當前目錄下

用powershell 執行命令:

go mod download

相關命令:

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 執行一下,自動導包

go list -m 主模塊的打印路徑

go list -m -f={{.Dir}} print主模塊的根目錄

go list -m all 查看當前的依賴和版本信息

linux 編譯

GOOS=linux;GOARCH=amd64;CGO_ENABLED=0

-o 指定編譯的輸出文件目錄

補充:win10下go mod 與gopath

GOPATH跟GOROOT不同,它是我們指向的工作空間。我們運行一個項目時需要導入依賴包,默認情況下會在我們配置的go環境的src文件下去查找,比如本身自帶的“fmt”,“os”諸如此類等都在此包下

go對自己配置的包的引用有嚴格的限制,同個目錄的包是一樣的,一般包名都一目錄名命名,不同目錄間的包可以相互引用但前提是你這個項目需要放在GOPATH路徑下的src文件內才可以相互引用 在其它的目錄下是引用不瞭的。

對於一些項目需要從github上面獲取依賴這樣的上面的方式效率可能不高,因為國內go get因為網絡問題可能下載get不到或者太慢,這時候就可以摒棄gopath轉而使用go mod瞭,不在需要在gopath下新建項目瞭,可以在任何你喜歡的目錄下新建,win10具體操作如下:

win +r打開cmd

go env -w GO111MODULE=on(默認模式為auto,還有off模式 on模式是使用模塊,gopath不生效;off不適用模塊,gopath生效;自己寫的一些項目如果不需要從網上導入依賴的話可以切換成go env -w GO111MODULE=off模式,反正就是一條命令,不用再涉及其它的環境配置)

然後就可以在任意路徑新建項目瞭,這裡比如我在D:\file\github\golang\code\chapter2\新建一個sample項目,然後再

D:\file\github\golang\code\chapter2\sample下新建一個main.go文件(這是項目的起點)

然後在該目錄下打開cmd

我這裡是因為已經生成瞭所以提示exists build命令也可以指定單個.go文件進行編譯,但是如果是在main.go起點文件的目錄下build,它可以循著main.go中導入的依賴將項目中的其它.go文件一同build

會在該目錄下生成一個go.mod文件,現在試下你的項目能不能運行

可以在cmd下執行go env這裡面有很多參數可以查看

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。