go.mod 在修订版中有 v0 后模块路径

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

发现这个:go build 不断抱怨:go.mod has post-v0 module path


因此,我删除了v3.0.0和v3.0.1标签,将其指向最新的提交,重新推送,但问题仍然存在。


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


require (

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

即使我改了它/v3 v3.0.2也会v0.1.12自动恢复。


为什么?


我错过了什么?


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


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.2和:v3.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=


FFIVE
浏览 131回答 3
3回答

繁华开满天机

请注意我的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

月关宝盒

我可能遇到过类似的问题,我更新了一个模块以使用 /v2 导入路径,但获取模块总是返回有关无效 go.mod 的错误解决办法是go get -u github.com/<me>/<pkg>/v2

HUX布斯

我可能遇到过类似的问题,我更新了一个模块以使用 /v2 导入路径,但获取模块总是返回有关无效 go.mod 的错误解决办法是go get -u github.com/<me>/<pkg>/v2
打开App,查看更多内容
随时随地看视频慕课网APP