Golang學習筆記-go mod

環境變量設置

環境變量GO111MODULE可設置三種值:on,off,auto,off表示使用GOPATH模式,on表示開啓模塊支持,根據go.mod下載和查找依賴,auto(默認值)表示根據當前目錄啓用或禁用模塊支持,僅噹噹前目錄位於$GOPATH/src之外並且其本身包含go.mod文件或位於包含go.mod文件的目錄下時,才啓用模塊支持。

環境變量GOPROXY可設置下載依賴時使用的代理,例如“https://goproxy.io”。

在項目中使用go mod

  • 在項目根目錄執行go mod init modulename初始化go mod,系統會生成一個go.mod文件。
  • 然後執行go build就會自動查找和下載代碼中的依賴包,並將依賴包以及版本寫入go.mod,同時生成go.sum記錄依賴包內容的校驗值。go mod下載依賴包的原則是先拉最新的release tag,若無tag則拉最新的commit。

添加和修改依賴包

使用go get會自動下載依賴包然後更新到go.mod文件,注意go build只會將go.mod中沒有的依賴包添加進去,所以不用擔心它們衝突,go get規則如下:

  • go get -u 將會升級到最新的次要版本或者修訂版本(x.y.z, z是修訂版本號, y是次要版本號)。
  • go get -u=patch將會升級到最新的修訂版本。
  • go get package@version 將會升級到指定的版本號。

替換依賴包

由於某些原因,並不是所有的依賴包都能成功下載,這個時候可以使用replace替換依賴包。

replace (
    golang.org/x/crypto => github.com/golang/crypto v0.0.0-20181127143415-eb0de9b17e85
    golang.org/x/net => github.com/golang/net v0.0.0-20181114220301-adae6a3d119a
)
replace (
    golang.org/x/crypto=> ../crypto
)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章