在某个随机文件夹中,有 3 个文件夹 a、b、c。每个文件夹都包含一个 mod 文件。
mod 文件包含以下内容。
go.mod 里面
module a
go 1.13
b 内的 go.mod
module b
go 1.13
require a v0.0.0
replace a v0.0.0 => ./../a
c 内的 go.mod
module c
go 1.13
require b v0.0.0
replace b v0.0.0 => ./../b
模块 b 没有抛出任何错误。但模块 c 抛出错误
go: b@v0.0.0 requires
a@v0.0.0: unrecognized import path "a" (import path does not begin with hostname)
每个模块的模块名称中都必须有一个点(.)。
“一些随机文件夹”更改为 example.com。现在 example.com 命名的文件夹包含所有 abc 文件夹。这是模块现在的样子
模块A看起来像
module example.com/a
go 1.13
模块 B 看起来像
module example.com/b
go 1.13
require example.com/a v0.0.0
replace example.com/a v0.0.0 => ../a
模块 C 看起来像
module example.com/c
go 1.13
require example.com/b v0.0.0
replace example.com/b v0.0.0 => ../b
太糟糕了!错误!
go: example.com/b@v0.0.0 requires
example.com/a@v0.0.0: unrecognized import path "example.com/a" (https fetch: Get
https://example.com/a?go-get=1: dial tcp 208.73.210.202:443: connect: connection refused)
本地模块的传递依赖如何工作?为什么 Go 要访问 example.com 来引入模块?到底是怎么回事?
胡子哥哥
相关分类