加餐|如何拉取私有的Go Module?
该思维导图由 AI 生成,仅供参考
导入本地 module
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了Go Module在处理本地未发布的module以及拉取私有module时可能遇到的问题,并提出了解决方案。其中包括手动添加require指示符和使用replace解决本地未发布module的依赖问题,以及通过搭建goproxy服务或统一的GOPROXY服务来拉取私有module。文章还介绍了统一Goproxy方案的实现思路与步骤。通过解决本地未发布module和拉取私有module的需求,展示了Go Module在实际应用中的解决方案,为读者提供了有益的技术参考。文章内容涵盖了搭建goproxy服务、自定义包导入路径、开发机客户端设置等方面,为读者提供了详实的操作指导和技术支持。文章还提到了Go 1.18版本的工作区机制,以及针对导入本地Go Module和拉取私有Go Module的不同解决方案。文章内容丰富,对于使用Go语言的开发人员具有一定的参考价值。
《Tony Bai · Go 语言第一课》,新⼈⾸单¥59
全部留言(7)
- 最新
- 精选
- 罗杰一直使用的都是 replace,还好我们的代码不是太多,人员也少,还没有自己造出比较好用的轮子,所以 replace 的都是本仓库内的代码,仓库内包含公共库和服务。期待 1.18 能尽可能降低开发者的心智负担,replace 我刚开始用的时候,理解起来还是非常费劲的。虽然比 gopath 好了不少,但是 go 在引包的这一块相比简单哲学还是不够友好。
作者回复: 这块的确给gopher们带来不少“困扰”。
2022-01-214 - lesserror大白老师的每篇文章,我都会认真研读几遍。这个专栏下来,自己认为对Go有了全面的认识。有几个小问题,还请解答。 1. 文中:export GOPRIVATE = {private module list},“private module list” 这里的配置大概是什么样子的呢? 2. 老师,安装goproxy这里,这个地址:http://10.10.20.20:8081 是不是相当于自己搭建的内网 服务器地址,每个人的都可能不同? 我用本地 127.0.0.1地址来安装测试,出现了这个错误:goproxy.io: http: proxy error: dial tcp: lookup goproxy.iogoproxy.io: no such host / goproxy.io: 0.460s 502 /github.com/pkg/errors/@v/list 3. 统一 Goproxy 方案的实现拓扑图中的 gerrit git 服务器(10.10.30.30)这里的 “gerrit” 代表什么意思呢?
作者回复: 感谢长期以来的支持。从专栏的留言情况来看,你也是整个专栏学习最认真的童鞋了,好像也没有之一:)。 1. GOPRIVATE=corporate1.com/repo1/module1, corporate2.com/repo2/module2,一个逗号分隔的module前缀列表,具体可以看一下 https://go.dev/ref/mod 2. 10.10.20.20是举例中的内网 服务器地址,根据环境自行设定。至于你遇到的错误,你看看设置的GOPROXXY环境变量是否ok?是否设置到你本地goproxy服务所监听的端口了?另外你的机器访问goproxy.io是否是ok的? 3. gerrit是google开源的代码review工具,可与git server集成,这里你就把它当做一个普通的git server就行了。
2022-01-311 - 哈哈哈哈哈好耶%*%
作者回复: 👍
2022-01-211 - 天天向上内部采用了方案二,Gitlab托管的公共库
作者回复: 👍
2022-08-22归属地:北京 - 锋子好像懂了,又好像没懂。 对于go.mod的module名字有啥意义不? 是否可以随便取,还是会影响什么? 比如我要引用的moduleB,那这个moduleB是在哪里定义的? 是moduleB的go.mod里配的名字还是路径名字?
作者回复: 如你提到的,如果要引用moduleB,那么就应该使用moduleB的go.mod中的module path。
2022-06-17 - 瓜牛想问一下那种非github的仓库,比如Russ Cox的个人域名(好像是rsc.io?)作为前缀的module是如何实现的,go get的搜索路径是怎样的?
作者回复: 在不考虑goproxy的情况下,go get会直接去访问rsc.io/xxx啊。但是显然rsc.io/xxx上的服务会将该go module的真实地址github.com/rsc/xxx返回给go get,go get拿到真实地址后,会继续到真实地址上去获取go module。 本篇加餐中的“自定义包导入路径并将其映射到内部的 vcs 仓库”一节说的就是这个事情。
2022-05-312 - 张申傲公司里正好用到了私有仓库的搭建,二刷一下,老师的每篇文章都是精品。
作者回复: 👍
2022-04-07