Kerberos认证原理 wordpress Nmap WorldCloud linq asynchronous syntax bluetooth yii2 arm Movejs vue配置 vue提交表单 后台网站模板 sketch up教程 安卓小程序源码 yml文件注释 kubernetes视频 python输出 python中的def python中pop函数 javaindexof java的包 java获取月份 javaworld java比较字符串 java日期格式 python教程视频 高效能人士的七个习惯pdf 灼热峡谷 adobe清理工具 电脑基础 gg修改器下载 java获取时间戳 mac强制重启 瑞兹技能 pr时间轴 fireworks下载 马颂德 战地2地图包下载
当前位置: 首页 > 学习教程  > 编程语言

Golang基础-Go Modules的使用

2020/10/8 19:10:48 文章标签:

介绍 go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。 使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum。 设置 设置环境变量 export GO111MODULEon1.13之后…

介绍

go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。
使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum。

设置

设置环境变量

export GO111MODULE=on

1.13之后使用

go env -w GO111MODULE=on

设置代理

export GOPROXY=https://goproxy.cn 

Go1.13之后GOPROXY默认值为https://proxy.golang.org,在国内是无法访问的,所以十分建议大家设置GOPROXY,这里我推荐使用goproxy.cn。
1.13之后使用

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

go mod

Golang 1.11 版本引入的 go mod ,其思想类似maven:摒弃vendor和GOPATH,拥抱本地库。从 Go 1.11 开始,Go 允许在 GOPATH/src 外的任何目录下使用 go.mod 创建项目。在GOPATH/src中,为了兼容性,Go 命令仍然在旧的 GOPATH 模式下运行。从 Go 1.13 开始,Module模式将成为默认模式。

常用命令

go mod download    下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit        编辑go.mod文件
go mod graph       打印模块依赖图
go mod init        初始化当前文件夹, 创建go.mod文件
go mod tidy        增加缺少的module,删除无用的module
go mod vendor      将依赖复制到vendor下
go mod verify      校验依赖
go mod why         解释为什么需要依赖

go.mod

目录结构大致如下:
在这里插入图片描述

  • module用来定义包名
  • require用来定义依赖包及版本
  • indirect表示间接引用
    replace
    在国内访问golang.org/x的各个包被墙,你可以在go.mod中使用replace替换成github上对应的库。
    例如:
replace (
	golang.org/x/text v0.3.0 => github.com/golang/text v0.3.0
)

go get

在项目中执行go get命令可以下载依赖包,并且还可以指定下载的版本。
运行go get -u将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号)。
运行go get -u=patch将会升级到最新的修订版本。
运行go get package@version将会升级到指定的版本号version。
如果下载所有依赖可以使用go mod download命令。

其他案例

将 GIN 框架的版本回退到上个版本。这里需要使用一个命令查看依赖的版本历史。

go list -m -versions github.com/gin-gonic/gin

/将会列出 Gin 版本历史

github.com/gin-gonic/gin v1.1.1 v1.1.2 v1.1.3 v1.1.4 v1.3.0

将版本更新到上个版本

go get github.com/gin-gonic/gin@v1.1.4 // 只需要在依赖后面加上 @version 就可以了
go list -m all

看到了版本变化

github.com/gin-gonic/gin v1.1.4

或者可以使用 go mod 来进行版本的切换,这样就需要两个步骤了

go mod edit -require="github.com/gin-gonic/gin@v1.1.4" // 修改 go.mod 文件
go tidy //下载更新依赖

在项目中使用

新项目
你可以在GOPATH之外创建新的项目。
1.go mod init packagename可以创建一个空的go.mod文件。
2.手动编辑go.mod中的require依赖项或执行go get自动发现、维护依赖。
3.go mod download可以下载所需要的依赖,但是依赖并不是下载到GOPATH中,而是GOPATH/pkg/mod中,多个项目可以共享缓存的module。
老项目
1.在项目目录下执行go mod init,生成一个go.mod文件。
2.执行go get,查找并记录当前项目的依赖,同时生成一个go.sum记录每个依赖库的版本和哈希值。
3.go mod tidy可以用来为go.mod增加丢失的依赖,删除不需要的依赖。


本文链接: http://www.dtmao.cc/news_show_250110.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?