执行go mod init module-name,其中module-name为包名字,执行完后会生成go.mod文件,如下
module module-name go 1.13
使用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 哈希值
原文:https://www.cnblogs.com/kaituorensheng/p/12261395.html