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

go模块是否可以没有go.mod文件?,go,go-modules,Go,Go Modules,我遇到了一个似乎是Go模块的回购协议,但其中没有Go.mod文件:github.com/confluentinc/confluent-kafka-Go go模块没有包含依赖项的go.mod文件,或者该库的作者还没有迁移到模块,这样可以吗?模块由其go.mod文件定义。如果没有go.mod文件,它就不是模块 请看下面的图片 模块是一起发布、版本控制和分发的包的集合。模块可以直接从版本控制存储库或模块代理服务器下载 模块由go.mod文件中声明的模块路径以及有关模块依赖关系的信息标识。模块根目录是包

我遇到了一个似乎是Go模块的回购协议,但其中没有Go.mod文件:github.com/confluentinc/confluent-kafka-Go


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

模块由其go.mod文件定义。如果没有go.mod文件,它就不是模块

请看下面的图片

模块是一起发布、版本控制和分发的包的集合。模块可以直接从版本控制存储库或模块代理服务器下载

模块由go.mod文件中声明的模块路径以及有关模块依赖关系的信息标识。模块根目录是包含go.mod文件的目录

模块由根目录中名为go.mod的UTF-8编码文本文件定义

讨论简短摘要:

答案是否定的,这个项目,但它不是一个go模块,因为它不包含go.mod文件,尽管它以前是


go 1.16版本的go get[package/module]命令将下载任何存储库,并将其视为go包,即使它包含任意python项目,正如一个简单的测试所示,尝试说go get github.com/mongoengine/mongoengine——令人惊讶的是,这会起作用

@StevenPenny啊哈,所以我们在条款上有分歧,我的问题就是关于这个。从文档来看,如果没有@hyms For Disco建议的go.mod文件,我认为它不是一个模块。然而,当我说go get github.com\confluent Inc\confluent kafka go时,go开始构建它,就像它是一个模块一样。@BorisBurkov注意到,模块在go中引入的时间要晚得多,在版本1.11中,在此之前,您只有软件包和程序。go-get命令从1.0开始可用,如果不是更早的话,在1.11之前,您只能执行go-get[package]而不是module,因为没有,在1.11之后,您仍然可以执行go-get[package],但也可以执行go-get[module],请参阅。在github上,您会发现许多项目没有go.mod文件,但仍然可以go-gettable。一个存储库中可能有多个模块。您甚至可以在同一个模块中拥有多个存储库,尽管这很难管理。值得注意的是,在删除go.mod文件之前,该存储库实际上是多个模块@史蒂芬尼,我做了个测试。我说去获取github.com/BurkovBA/django-rest-framework-mongoengine,这是一个带有python项目的回购协议。它成功了,go get将它添加到我的go.mod文件中,就像它是一个有效的依赖项一样,并将repo下载到pkg/mod modules缓存中,而不检查go.mod文件或任何东西。文档中说,从go 1.16开始,go install是构建模块的推荐选项,而go get更多的是管理下载:。@BorisBurkov无论你怎么称呼它,它肯定不是一个有效的go模块。模块是一组版本相同的软件包。