一尘不染

go.mod在修订版中具有v0后的模块路径“ git.example.com/owner/repo/v3”吗?

go

我的同事v3.0.1在更新后添加go.mod/v3后缀(https://github.com/golang/go/wiki/Modules#releasing-
modules-v2-or-higher)之前推了一个标签。我已经更新了模块路径(go.mod)和所有导入路径(*.go)对其进行了修复,标记为v3.0.2

现在的问题是:

go get -v git.example.com/owner/repo@v3.0.2
go: finding git.example.com/owner/repo v3.0.2
go: git.example.com/owner/repo@v0.0.0-20190722053407-d85c4f69ad17: go.mod has post-v0 module path "git.example.com/owner/repo/v3" at revision 
d85c4f69ad17

发现了这一点:gobuild一直抱怨:go.mod具有post-v0模块路径

因此,我删除了v3.0.0v3.0.1标记,将其指向最新的提交,然后再次按下,但问题仍然存在。

我注意到,go.mod仍然将旧版本称为间接依赖项:

require (
    git.example.com/owner.repo v0.1.2 // indirect

即使我将其更改为/v3 v3.0.2它也将v0.1.12自动恢复为。

为什么?

我错过了什么?


2019年7月23日星期二05:54:56 +07

rm go.*
go mod init git.example.com/dependent/project
go mod tidy

go.mod已正确更新:

require (
-       git.example.com/owner/repo v0.1.2
+       git.example.com/owner/repo/v3 v3.0.2

go get -v git.example.com/owner/repo@v3.0.2仍然返回错误:

go: finding git.example.com/owner/repo v3.0.2
go: git.example.com/owner/repo@v0.0.0-20190722053407-d85c4f69ad17: go.mod has post-v0 module path "git.example.com/owner/repo/v3" at revision 
d85c4f69ad17

d85c4f69ad17是最新的提交master

我注意到,有两个v0.1.2v3.0.2go.sum

git.example.com/owner/repo v0.1.2 h1:mCGJEmyrFDTCGkRfUIORpqdrNkSONQ6K+AcTNgxqveY=
git.example.com/owner/repo v0.1.2/go.mod h1:FfUKnyPrARCtAXQZ3BQVJI7h2eJ0UpQBMLg4bNs4Kdc=
git.example.com/owner/repo/v3 v3.0.2 h1:mJtDKLeiP8vMRSZo08i/k/KDbIoZTlKW2aWu7DUBvMM=
git.example.com/owner/repo/v3 v3.0.2/go.mod h1:64LE0ts0Lk9InIQyhPYGmnxs6LZIl6H4Iorl1EXfqxo=

阅读 284

收藏
2020-07-02

共1个答案

一尘不染

请注意我的go get命令:

go get -v git.example.com/owner/repo@v3.0.2

它应该是:

go get -v git.example.com/owner/repo/v3@v3.0.2
2020-07-02