首页 >后端开发 >Golang >Go 模块:从 GOPATH 的全有或全无过渡?

Go 模块:从 GOPATH 的全有或全无过渡?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-30 15:57:10589浏览

Go Modules: All-or-Nothing Transition from GOPATH?

了解私有存储库中的 Go 模块和 Gopath

将内部代码库从 dep 迁移到 go 模块时,会出现某些注意事项。本文深入探讨了使用 go 模块的期望和后果,特别是与私有存储库和 gopath 相关的期望和后果。

Go 模块和 Gopath

根据 Go对于项目架构师来说,“无点”路径(前面没有点)专门用于标准库。内部开发的依赖项不应使用此表示法。

一旦项目过渡到使用 go 模块,它必须完全拥抱模块系统。然后,gopath 在功能上与模块缓存相同。

模块和私有存储库的后果

这种到模块的转换需要通过私有存储库管理依赖项。因此,开发人员可能会面临以下后果:

  • 远程依赖迭代:开发人员可能需要将更改推送和拉取到远程存储库以迭代私有模块依赖项。
  • 合并存储库:或者,开发人员可以将所有存储库合并到一个更集中的单个存储库中一。

您的关键假设

您认为 go 模块项目中的所有依赖项必须通过模块系统解决的假设是正确的。 gopath 仅用作下载模块的缓存。

问题:go 模块是全有还是全无?

是的,go 模块是全有或全无。一旦项目采用模块,所有依赖项都必须模块化。 gopath 仅保留其作为下载模块的缓存的意义。

从 Gopath 显式解决依赖关系

没有办法明确指示应该解决依赖关系来自 gopath。

其他见解

  • 将 myprogram 移出 gopath 并不能解决问题。
  • 在 mylib 目录中运行“go mod init”不会影响情况。
  • 利用 $GOPROXY 可以促进具有私有模块依赖的离线开发。

以上是Go 模块:从 GOPATH 的全有或全无过渡?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn