如何解决go get 命令和 go mod download 命令有什么区别
我试图对 Go 模块有一个很好的理解,但对 go get 命令和 go mod download 命令之间的区别有点困惑。
“go get 命令更新主模块的 go.mod 文件中的模块依赖关系,然后构建和安装命令行中列出的包。” https://golang.org/ref/mod#go-get
而 Go mod 下载描述为:
“go mod download 命令将命名模块下载到模块缓存中。” https://golang.org/ref/mod#go-mod-download
显然 go get 执行了一些 go mod download 没有的依赖管理,但是使用 go get 安装包和在 go mod download 中将模块下载到模块缓存有什么区别。
解决方法
您的模块的 go.mod
文件记录了它需要哪些版本的依赖项。这些依赖项的源代码存储在本地缓存中。
go get
更新您的 go.mod
文件中列出的要求。它还确保这些需求是自洽的,并根据需要添加新需求,以便您在命令行中命名的包导入的每个包都由您的需求中的某个模块提供。
作为更新和添加需求的副作用,go get
还会将包含命名包(及其依赖项)的模块下载到本地模块缓存中。
相比之下,go mod download
不会添加新需求或更新现有需求。 (最多,它会确保现有要求是自洽的,如果您手动编辑了 go.mod
文件,就会发生这种情况。)它只下载您请求的特定模块版本(如果您请求特定版本),或出现在您的要求中的模块版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。