【每天一个Go知识点】(0) Go mod常用与高级操作[转]

转载地址:https://zhuanlan.zhihu.com/p/103534192

1. 开启Go module

1.11和1.12版本

将下面两个设置添加到系统的环境变量中

GO111MODULE=on
GOPROXY=https://goproxy.io

1.13版本之后

需要注意的是这种方式并不会覆盖之前的配置,有点坑,你需要先把系统的环境变量里面的给删掉再设置

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

goLand开启 go mod

image

2. go get使用

使用go module之后,go get 拉取依赖的方式就发生了变化

  • 下载项目依赖
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
  • 指定版本拉取,拉取v3版本
go get github.com/smartwalle/alipay/v3
  • 更新
go get -u

3. mod基本操作

  1. 初始化一个moudle,模块名为你项目名
go mod init 模块名
  1. 下载modules到本地cache

目前所有模块版本数据均缓存在 $GOPATH/pkg/mod$GOPATH/pkg/sum

go mod download
  1. 编辑go.mod文件 选项有-json-require-exclude,可以使用帮助go help mod edit
go mod edit
  1. 以文本模式打印模块需求图
go mod graph
  1. 删除错误或者不使用的modules
go mod tidy
  1. 生成vendor目录
go mod vendor
  1. 验证依赖是否正确
go mod verify
  1. 查找依赖
go mod why

4. mod高级操作

  1. 更新到最新版本
go get github.com/gogf/gf@version

如果没有指明 version 的情况下,则默认先下载打了 tag 的 release 版本,
比如 v0.4.5 或者 v1.2.3;如果没有 release 版本,则下载最新的 pre release 版本,比如 v0.0.1-pre1。如果还没有则下载最新的 commit

  1. 更新到某个分支最新的代码
go get github.com/gogf/gf@master
  1. 更新到最新的修订版(只改bug的版本)
go get -u=patch github.com/gogf/gf
  1. 替代只能翻墙下载的库
go mod edit -replace=golang.org/x/crypto@v0.0.0=github.com/golang/crypto@latest
go mod edit -replace=golang.org/x/sys@v0.0.0=github.com/golang/sys@latest
  1. 清理moudle 缓存
go clean -modcache
  1. 查看可下载版本
go list -m -versions github.com/gogf/gf
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 开启Go module 1.11和1.12版本 将下面两个设置添加到系统的环境变量中 1.13版本之后 这种...
    剑心zzw阅读 7,571评论 2 4
  • 1、为什么要使用go mod 目前,golang的包管理工具有很多,用的比较多的包括:govendor、godep...
    yongfutian阅读 2,172评论 0 1
  • 下载 官方个版本下载地址,需要翻墙:Downloads - The Go Programming Language...
    我是GGY阅读 8,397评论 0 0
  • 最近由于换工作,开始交接工作。整理以前的工作内容,由于组内就我一个在做go和大数据。 所以开发没有规划,当时是怎么...
    若与阅读 242,255评论 10 110
  • 1. 简介 GO Modules 也称作 go mod 是golang 官方最新的几个golang 版本中推出的 ...
    楚江云阅读 1,417评论 0 2