环境变量设置
环境变量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
)
有疑问加站长微信联系(非本文作者)