我继承了一个构建脚本,该脚本构建了一个docker映像并使用hashicorp/levant
库进行部署。一年左右以来,我们一直在运行go get github.com/jrasell/levant
来获取levant
库。在过去的几天里,回购URL在Hashicorp的组织下被合并,我们已经将脚本更改为使用go get github.com/hashicorp/levant
进行pull。但不管怎样,我们都会得到这个多重分配错误。这意味着什么,"go"不是基本上只是拉动了git回购吗?
../go/src/github.com/hashicorp/levant/template/render.go:28:11: cannot assign
*"github.com/hashicorp/nomad/vendor/github.com/hashicorp/nomad/api".Job to job
(type *"github.com/hashicorp/nomad/api".Job) in multiple assignment
首先,go get
使用包,而不是存储库。
除了拉取它们之外,go get
还编译和安装它们,此时会弹出错误。
更多信息请点击此处:
https://nanxiao.gitbooks.io/golang-101-hacks/content/posts/go-get-command.html
我建议您使用Go模块。
hashicorp/levant
确实有go.{mod,sum}
文件,因此您应该忘记使用go-get方法。
最好进行克隆并遵循go模块的方式,即
git clone git@github.com:hashicorp/levant.git
go test ./...
go build ./...
步骤不仅克隆您的回购,还将带来构建/测试包所需的依赖包。
注意:你应该有Go v1.11+