go語言通過包管理來封裝模組和復用**,這裡我們只介紹go modules管理方法
go modules於go語言1.11版本時引入,在1.12版本正式支援,是由go語言官方提供的包管理解決方案
modules是相關go包的集合,是源**交換和版本控制的單元。go命令直接支援使用modules,包括記錄和解析對其他模組的依賴性
首先需要設定環境變數,可以使用go env命令檢視當前配置。
$ go env
go111module=
"auto"
goproxy=
""gonoproxy=
""gosumdb=
"sum.golang.org"
gonosumdb=
""goprivate=
""
如果需要更改 go111module ,可以使用go env命令
go env -w go111module=on
go111module
auto:只要專案包含了 go
.mod 檔案的話啟用 go modules,目前在 go1.
11 至 go1.
14 中仍然是預設值。
goproxy
此環境變數主要用於設計go module的**
gosumdb
此環境變數用於在拉取模組的時候保證模組版本資料的一致性。
go modules的使用方法比較靈活,在目錄下包含go.mod檔案即可
首先通過如下命令建立乙個新的module
go mod init [module name]
然後當前目錄會生成go.mod檔案,其內容為:
module modulename
go 1.15
go modules會自動管理包,如果需要引入依賴,只需要在go.mod下新增以下內容(以gorose為例子)
0.5)go get 命令用於拉取新的依賴,以下為go get命令具體用法
go get 拉取依賴,會進行指定性拉取(更新),並不會更新所依賴的其它模組。
go get -u 更新現有的依賴,會強制更新它所依賴的其它全部模組,不包括自身。
go get -u -t ./… 更新所有直接依賴和間接依賴的模組版本,包括單元測試中用到的。
其他引數
-f 只有在你包含了 -u 引數的時候才有效,不讓 -u 去驗證 import 中的每乙個都已經獲取了,這對於本地 fork 的包特別有用
-fix 在獲取原始碼之後先執行 fix,然後再去做其他的事情
-u 強制使用網路去更新包和它的依賴包
-v 顯示執行的命令
go mod init // 初始化go.mod
go mod tidy // 更新依賴檔案
go mod vendor // 將依賴轉移至本地的vendor檔案
go mod edit // 手動修改依賴檔案
go mod graph // 檢視現有的依賴結構
go mod verify // 校驗依賴
go語言包管理
要構建go語言的編譯環境,首先得安裝go語言的編譯工具 官方路徑 一般是訪問不了,使用國內 然後需要設定環境變數 在windows下需要將go編譯器的安裝路徑加到path,還要設定goroot和gopath變數,分別對應go安裝目錄和專案下的src目錄。go包管理一般有兩種方式 gopath方式和g...
go語言包管理工具glide介紹
glide是golang的包管理工具,是為了解決golang依賴問題的。為什麼需要glide?原因很簡單,go 語言原生包管理的缺陷。羅列一下golang的 get 子命令管理依賴有很多大缺陷 go install github.com masterminds glide初始化之前需要先進入到專案目...
go語言的包管理
在各種語言中都引入了包管理的思想,它有什麼作用呢?在go語言安裝一文中提到go語言的工作空間的概念 import fmt import github.com gin gonic gin 以上 是在 中匯入了兩個包,乙個內建包,乙個第三方包.這裡的import後是乙個包相對於 gopath src的相...