我试着在本地为Go模块使用下面的命令。
go mod init mymodule/api
当我尝试在本地导入文件时,比如import "mymodule/api/routes"
,它可以正常工作,但是,我尝试修改Go语言模块的名称,删除初始的go.mod
文件,然后运行这个命令。
go mod init github.com/myrepo/project/api
然后,当我通过import "github.com/myrepo/project/api/routes"
将文件导入到我的一个模块中时,它不起作用,它没有尝试在本地导入模块,而是尝试从github.com
中获取模块。
确切的错误消息如下所示。
github.com/myrepo/project/api/routes: cannot find module providing package github.com/myrepo/project/api/routes: module github.com/myrepo/project/api/routes: git ls-remote -q origin in C:\Users\R\go\pkg\mod\cache\vcs\8c9cab82d2eef4d5003b0ef7010fbbba91353c1368fe1a69d6c6a8fbfa8c8eb5: exit status 128:
remote: Repository not found.
fatal: repository 'github.com/myrepo/project/api' not found
有人能告诉我如何重命名Go语言模块,使其以www.example.com开头github.com并且仍然在本地加载模块吗?或者这是预期的行为吗?
1条答案
按热度按时间byqmnocz1#
开发状态:
当你想同时开发或调试这两个软件包时,请参阅Golang文档:
replace指令将模块的特定版本或所有版本的内容替换为其他位置的内容。可以使用其他模块路径和版本或平台特定的文件路径指定替换。
因此,您可以使用replace命令来实现此目的,方法是将确切的软件包地址替换为您的本地软件包地址:
有关
replace
的更多信息,请阅读此文档:https://go.dev/ref/mod#go-mod-file-replace生产状态:
但如果你想在生产中使用它,这取决于你的软件包,如果你的软件包在GitHub上是私有的:最具体的选项是设置
GOPRIVATE
来匹配你的模块的路径.像这样: