首页 >后端开发 >Golang >如何使用 Go 模块管理私有存储库依赖关系?

如何使用 Go 模块管理私有存储库依赖关系?

Susan Sarandon
Susan Sarandon原创
2024-12-08 17:24:11219浏览

How Do I Manage Private Repository Dependencies with Go Modules?

Go 模块、私有存储库和 GOPATH

了解私有模块依赖关系

在 Go 模块中,“无点”路径像“mycompany/mylib”是为标准存储库保留的。这意味着对于通过私有存储库访问的模块,应该绑定域名和项目。

全有或全无模块依赖管理

Go 模块强制执行“所有“或无”的方法。使用模块时,必须使用模块系统(go get)解决所有依赖关系。除了作为下载模块的缓存之外,GOPATH 变得多余。

在私有存储库中迭代的后果

过去,开发人员可以在提交更改之前在本地开发库。对于模块,您有两个选项:

  1. 接受远程依赖并迭代:这涉及从远程存储库推送和拉取更改,可能需要持续的互联网连接。
  2. 合并到单个 Git 存储库:这种方法将所有库合并到一个存储库中,无需远程操作

简化代码的案例研究

您的示例代码代表了从 dep 转换到 Go 模块时的常见问题。当 GO111MODULE 设置为“on”时,会出现错误“找不到路径 mycompany/mylib 的模块”。这是因为 mylib 还不是模块。

解决方案

要使用 mylib 的私有存储库作为 myprogram 中的依赖项:

  1. 为mylib创建私有仓库。
  2. 使用GOPRIVATE指定mylib是私有的存储库。
  3. 使用 go mod edit -replace mycompany/mylib=git.example.com/mycompany/mylib 导入 mylib。
  4. 将更改推送到私有存储库。

额外注意事项

  • GOPROXY 可用于带有私有模块的离线开发。
  • GITHUB_TOKEN 解决方法可用于身份验证目的。

以上是如何使用 Go 模块管理私有存储库依赖关系?的详细内容。更多信息请关注PHP中文网其他相关文章!

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