我有一个有点奇怪的问题,我的团队一直在使用我们内部cli工具的Vault。
我们最终使用了:
github.com/hashicorp/vault/api
和
[github.com/hashicorp/vault/commands
github.com/hashicorp/vault
我正在尝试将Vault / api更新到最新版本1.3.3:
github.com/hashicorp/vault v1.3.3
github.com/hashicorp/vault/api v1.3.3
问题是我得到:
go: github.com/hashicorp/vault/[email protected]: reading github.com/hashicorp/vault/api/api/go.mod at revision api/v1.3.3: unknown revision api/v1.3.3
我认为这是由此根模块和冲突引起的。那有意义吗?任何想法在这种情况下该怎么办?
子模块的版本不一定与父模块的版本保持同步。应将它们视为完全独立的模块,恰好存在于相同的存储库/目录结构中。
检查https://github.com/hashicorp/vault/releases的正式版本/标签-Go支持分层的Git标签来标记子模块的版本。例如,截至今天,vault
本身的最新版本是1.3.3,但我在v1.0.4上只找到了vault/api
(这是api/v1.0.4
的最新标记)
只需执行go get
即可获取其最新版本。最初导入时,实际上不需要在go.mod中指定版本-go
工具将为您找到最新版本。
Go模块不过是Go软件包(文件夹)的集合。属于软件包的源文件应放在各自的单独文件夹中。在Go中有一个约定,就是使用与软件包相同的名称来命名此文件夹。
[无论何时在任何子文件夹下运行go get注释,它都会更新到当前目录,并且任何父目录都有go.mod。