GO MOD 中 go module 版本号定义与引用
在 GO 中 Module 的版本号,要遵守 v<major>.<minor>.<patch> 的格式(前面v不要忘记了,否则会按照 commit ID来引入)
1. 强烈建议方法
版本命名:v0.0.1 样式 (大版本号 v0 v1)
导入: go get git.xiewo.net/laojia/gos@v0.0.1
2. go.mod文件内的版本号
但我们会在 go.mod 文件中遇到如下几种依赖包引入情况:
有的是 v1.7.3 标准版本号
有的依赖包路径带有 v字眼
有的是 v0.0.0-xxxx 的版本描述
还有的版本号后带有 +incompatible 字眼
样式例如:
github.com/gorilla/mux v1.7.4
github.com/go-redis/redis/v8 v8.0.0-beta.6
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1
k8s.io/client-go v11.0.0+incompatible [实验导入失败,别碰它恶心人]
以上第一行是正常,我们就不说了
第二行 是因为 版本号大于1 了,这时候引入需要:
在 module 名字 中要有 /v8 体现版本
第三行 可以直接通过 commit id 下载代码:
如果 v1.1.1 写成了 1.1.1,忘记开头的 v 了,那么也会用这种方式
下载样式 go get xxxx@commit id
第四种 是引入 不规范的包
不规范指:Module名字未遵循Golang所推荐的风格,即Module名中不带版本信息,我们称这个Module为不规范的Module。
go mod tidy 和 go get 区别
go mod tidy: 只能引入 latest 版本
go get: 可以指定版本
replace 替换 require 中的版本
声明使用 1.1.1 版本,但实际使用的是 1.1.0 版本
go 1.13 require github.com/google/uuid v1.1.1 replace github.com/google/uuid v1.1.1 => github.com/google/uuid v1.1.0
参考:
https://blog.csdn.net/u012190809/article/details/109773784
https://my.oschina.net/renhc/blog/3167195
共 0 条评论