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。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- go語言中GOPATH GOROOT的作用和設置方式
- go自動下載所有的依賴包go module使用詳解
- GoPath模式和GoMoudle模式的相愛相殺
- Golang中的包及包管理工具go mod詳解
- golang 在windows中設置環境變量的操作