go 模块可以没有 go.mod 文件吗?

Bor*_*kov 4 go go-modules

go.mod我遇到了一个似乎是 Go 模块的存储库,但其中没有文件:github.com/confluenceinc/confluence-kafka-go。

go 模块没有包含依赖项的文件是否可以go.mod,或者该库的作者还没有迁移到模块?

bcm*_*lls 10

依赖模块不需要有显式go.mod文件

\n

模块模式下的\xe2\x80\x9c主模块\xe2\x80\x9d即包含命令go\xe2\x80\x94工作目录的模块必须有一个go.mod文件,这样go命令可以找出该模块内包的导入路径(基于其模块路径),以便在解析后有一个地方记录其依赖项。

\n

此外,插入 usingreplace指令的任何模块都必须有go.mod文件(以减少由于替换路径中的拼写错误或其他错误而造成的混乱)。

\n

然而,一般来说,缺少显式go.mod文件的模块是有效的并且可以很好地使用。它的有效模块路径是它被创建的路径require,如果同一个存储库最终通过多个路径使用,这可能会有点混乱。由于没有go.mod文件的模块不一定指定其自己的依赖项,因此该模块的使用者必须自己填写这些依赖项(go mod tidy将它们标记为// indirect使用者的go.mod文件中)。

\n