我正在尝试添加一个新的包到我的项目中去。这个包使用github.com/docker/docker/client,并且在项目外工作的很好。当我运行go mod vendor时,它会拉v1.13.1版本的docker客户端包,它没有我在代码中使用的一些方法。但是在go模块中它被标记为最新的。2我如何让go模块使用真正最新版本的软件包呢?
go mod vendor
tkqqtvp11#
Go Wiki: Modules:如果需要,可以使用go get foo@v1.2.3、go get foo@master、go get foo@e3702bed2等命令或直接编辑go.mod来选择更具体的依赖关系版本。如果需要master分支上的最新提交,请使用
go get foo@v1.2.3
go get foo@master
go get foo@e3702bed2
go.mod
master
go get github.com/docker/docker/client@master
46qrfjad2#
这也快把我逼疯了:下载“master”或“latest”标签通常会下载HEAD之前的一两个提交版本。我在这里找到了答案:go命令默认从proxy.golang.org上的公共Go模块镜像下载模块。它也默认根据sum.golang.org上的公共Go校验和数据库验证下载的模块,而不考虑其来源。这些默认值适用于公共源代码。而且很明显存在一些缓存;如果你等待一段时间,它通常开始工作,或者它有助于临时设置版本到一个特定的提交。为了解决这个问题,我设置了GOPRIVATE=github.com/myuser。
GOPRIVATE=github.com/myuser
t3psigkw3#
为了获取最新的未标记版本,您需要指定在执行go get时要使用的commit标记
go get github.com/docker/docker/client@[commit-hash]
35g0bw714#
建议使用一个特定的版本(首选的标记版本,如果不是最新的伪版本而不是主版本)。在go.mod文件中锁定依赖版本可以确保可重复性。其中一个go代理中可用的最新版本是https://search.gocenter.io/github.com~2Fdocker~2Fdocker/info?version=v1.14.0-0.20190511020111-3998dffb806f
l7mqbcuq5#
花了过去的20个小时试图修复一个类似的问题,在我的情况下,以下步骤解决了问题:1.删除$GOPATH/pkg/sumdb1.删除go.mod和go.sum文件1.重新创建模块:go mod初始化名称1.去测试。/...
$GOPATH/pkg/sumdb
7d7tgy0s6#
我的情况与最初的问题并不完全一致,但我觉得有必要提一下,帮助其他与我处境相似的人:
内容
go get
go clean -modcache rm go.sum go get go mod tidy
根本原因:我是个白痴
git tag -d v0.0.0 git push --delete v0.0.0 git tag v0.0.0 git push origin v0.0.0
6条答案
按热度按时间tkqqtvp11#
Go Wiki: Modules:
如果需要,可以使用
go get foo@v1.2.3
、go get foo@master
、go get foo@e3702bed2
等命令或直接编辑go.mod
来选择更具体的依赖关系版本。如果需要
master
分支上的最新提交,请使用46qrfjad2#
这也快把我逼疯了:下载“master”或“latest”标签通常会下载HEAD之前的一两个提交版本。我在这里找到了答案:
go命令默认从proxy.golang.org上的公共Go模块镜像下载模块。它也默认根据sum.golang.org上的公共Go校验和数据库验证下载的模块,而不考虑其来源。这些默认值适用于公共源代码。
而且很明显存在一些缓存;如果你等待一段时间,它通常开始工作,或者它有助于临时设置版本到一个特定的提交。
为了解决这个问题,我设置了
GOPRIVATE=github.com/myuser
。t3psigkw3#
为了获取最新的未标记版本,您需要指定在执行go get时要使用的commit标记
35g0bw714#
建议使用一个特定的版本(首选的标记版本,如果不是最新的伪版本而不是主版本)。在go.mod文件中锁定依赖版本可以确保可重复性。
其中一个go代理中可用的最新版本是https://search.gocenter.io/github.com~2Fdocker~2Fdocker/info?version=v1.14.0-0.20190511020111-3998dffb806f
l7mqbcuq5#
花了过去的20个小时试图修复一个类似的问题,在我的情况下,以下步骤解决了问题:
1.删除
$GOPATH/pkg/sumdb
1.删除go.mod和go.sum文件
1.重新创建模块:go mod初始化名称
1.去测试。/...
7d7tgy0s6#
我的情况与最初的问题并不完全一致,但我觉得有必要提一下,帮助其他与我处境相似的人:
内容
go get
时会一直提取旧版本,即使在运行以下命令后也是如此:根本原因:我是个白痴
修复