初始化
執行go mod init module-name,其中module-name為包名字,執行完后會生成go.mod文件,如下
module module-name go 1.13
拉取依賴
go get ***
如:go get github.com/jinzhu/gorm
更多參數
用 go get 拉取新的依賴 拉取最新的版本(優先擇取 tag):go get golang.org/x/text@latest 拉取 master 分支的最新 commit:go get golang.org/x/text@master 拉取 tag 為 v0.3.2 的 commit:go get golang.org/x/text@v0.3.2 拉取 hash 為 342b231 的 commit,最終會被轉換為 v0.3.2:go get golang.org/x/text@342b2e 用 go get -u 更新現有的依賴 用 go mod download 下載 go.mod 文件中指明的所有依賴 用 go mod tidy 整理現有的依賴 用 go mod graph 查看現有的依賴結構 用 go mod init 生成 go.mod 文件 (Go 1.13 中唯一一個可以生成 go.mod 文件的子命令) 用 go mod edit 編輯 go.mod 文件 用 go mod vendor 導出現有的所有依賴 (事實上 Go modules 正在淡化 Vendor 的概念) 用 go mod verify 校驗一個模塊是否被篡改過
包管理
使用go build,go test以及go list時,go會自動得更新go.mod文件,將依賴關系寫入其中。
如果想手動處理依賴關系,那么使用如下的命令:
go mod tidy
初始化項目
go get拉取新的依賴,如引入go-gin
go mod init github.com/jihite/go-gin-example
執行完后,go.mod如下
module github.com/jihite/go-gin-example go 1.13 require ( github.com/gin-gonic/gin v1.5.0 github.com/go-playground/universal-translator v0.17.0 // indirect github.com/golang/protobuf v1.3.3 // indirect github.com/json-iterator/go v1.1.9 // indirect github.com/leodido/go-urn v1.2.0 // indirect github.com/mattn/go-isatty v0.0.12 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.1 // indirect golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 // indirect gopkg.in/go-playground/validator.v9 v9.31.0 // indirect gopkg.in/yaml.v2 v2.2.8 // indirect )
其中indirect
是非直接依賴
同時多了go.sum文件,如下
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.5.0 h1:fi+bqFAx/oLK54somfCtEZs9HeH1LHVoEPUgARpTqyc= github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
go.sum羅列了當前項目直接和間接依賴的所有模塊版本,格式
模塊 版本號 SHA-256 哈希值
安裝指定依賴
go get -u github.com/smartwalle/dbs
更新
go get package[@version]
示例
go get github.com/gin-gonic/gin@master