Golang学习笔记-go mod

aside section ._1OhGeD · · 874 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

环境变量设置

环境变量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
)

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:aside section ._1OhGeD

查看原文:Golang学习笔记-go mod

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

874 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传