我正在开发一个依赖于original-project. 我现在想通过修改original-project. 所以我克隆github.com/y/original-project到github.com/x/my-version并替换了所有出现的github.com/y/original-projectwith github.com/x/my-version(包括 in mod.go)。
但我不断收到此错误:
go: github.com/x/my-version@v0.5.2: parsing go.mod:
module declares its path as: github.com/y/original-project
but was required as: github.com/x/my-version
Run Code Online (Sandbox Code Playgroud)
即使我跑步go get -u -v -f all或github.com/x/my-version
我可能做错了什么?
ser*_*io4 16
我有类似的问题。我最终删除了我试图导入并go mod init ...再次运行的项目中的 go.mod 文件。它修复了它。
另外,go clean -modcache在您要导入的地方运行。
然后试试go get ...你的包。
小智 13
我目前正在开发一个 Go 包并遇到了这个问题。我最初使用文件module <package-name>顶部的语法go.mod。由于模块未正确下载,我将语法更改为module github.com/<user>/<package-name>. 不幸的是,即使我手动删除了依赖项,我的系统仍然停留在旧的下载缓存上。
为了解决这个问题,我在 GitHub 上为该项目创建了一个新的发布标签 ( v0.0.1-beta),现在它可以正常下载了。go get存储带有版本标签的模块,因此这就绕过了这个问题。
Ram*_*ino 13
诀窍是更新go mod缓存。
go.mod因此,在(ie )中进行所需的更改后github.com/X/Z => github.com/Y/Z,您需要下载最新版本来更新您的本地go mod缓存。
IEgo get github.com/Y/Z@fd02212
然后错误消息就会消失。
Dim*_*rov 12
我认为问题来自于go.mod你的克隆版本original-project仍然说module github.com/y/original-project. 您应该使用go.mod replace指令。它完全适用于像您这样的情况。
replace github.com/y/original-project => /path/to/x/my-version
Run Code Online (Sandbox Code Playgroud)
小智 7
使用go mod edit -replace命令。
示例1:
go mod edit -replace github.com/y/original-project=github.com/x/my-version@v0.5.2
示例2:
go mod edit -replace github.com/codahale/hdrhistogram=github.com/HdrHistogram/hdrhistogram-go@v0.9.0
来自: https: //github.com/HdrHistogram/hdrhistogram-go
就我而言,我不想只修复本地问题,但要确保它对每个人都有效。
更改 go.mod 中的值后(最好删除 go.mod 和 go.sum 文件,然后运行
go mod init github.com/organization/new-package-name
go mod tidy
go get github.com/organization/new-package-name
Run Code Online (Sandbox Code Playgroud)
上面并没有真正解决我的问题,也没有go clean -modcache。
对我有用的是删除然后在新分叉的项目上重新创建标签。(建议:从 Git 存储库中删除所有标签)
然后创建一个新标签。
git tag v1.0.0 -m "new version"
git push origin v1.0.0
Run Code Online (Sandbox Code Playgroud)
之后,您可以通过安装
go get github.com/organization/new-package-name@latest
Run Code Online (Sandbox Code Playgroud)
或者
go get github.com/organization/new-package-name@v1.0.0
Run Code Online (Sandbox Code Playgroud)