GoLang专题

Go语言版本控制及包依赖管理

2018-08-23  本文已影响0人  一根很帅的藤藤菜

传统Go构建以及包依赖管理

image.png
  1. 因依赖包的trunk的变化,导致不同人获取和编译你的包/程序时得到的结果实质是不同的,即不能实现reproduceable build
  2. 因依赖包的trunk的变化,引入不兼容的实现,导致你的包/程序无法通过编译
  3. 因依赖包演进而无法通过编译,导致你的包/程序无法通过编译

Go语言版本控制

Go添加版本控制共分四个步骤

导入兼容规则


import "github.com/go-yaml/yaml/v2"

最小版本规则

Go Module


module "rsc.io/hello"

require (

"golang.org/x/text" v0.0.0-20180208041248-4e4a3210bb54

"rsc.io/quote" v1.5.2

)

这个文件通过路径标识 rsc.io/hello 定义了一个模块,它本身还依赖于两个其他模块:golang.org/x/text 和 rsc.io/quote ,这个模块自身编译的时候使用的是 go.mod 文件中指定的依赖列表的版本。对于更上一层的编译,其他导入这个模块的地方将使用它较新的版本编译。

包发布者最好使用语义化的 tag 发布版本,vgo 也鼓励通过打tag的版本号方式,而不是任意的提交版本。

Go 命令

上一篇下一篇

猜你喜欢

热点阅读