Go - Private Module
导入本地 Module
借助
go.mod
的replace
指示符
1 | require github.com/user/b v1.0.0 |
优化方案:
Go workspace
Private Module
公网
对
private module
的拉取,不会走GOPROXY
代理服务,也不会去GOSUMDB
服务器做 Go 包的hash
值校验
内网
更主流
方案 1
in-hourse goproxy
类似于nexus
方案 2
推荐
- Go 命令默认会对所有通过
goproxy
拉取到的Go Module
,进行sum 校验
(默认到sum.golang.org
) - 为了
跳过
sum 验证,需要将private module
填到GONOSUMDB
中
实践
GOPROXY
编译
1 | $ mkdir goproxy |
缓存
1 | $ mkdir /home/zhongmingmao/goproxy/goproxy/bin/cache |
启动
1 | $ ./bin/goproxy -listen=0.0.0.0:8081 -cacheDir=/home/zhongmingmao/goproxy/goproxy/bin/cache -proxy https://goproxy.io |
验证
1 | export GOPROXY=http://mac-dev:8081,direct |
1 | goproxy.io: ------ --- /github.com/pkg/errors/@v/list [proxy] |
1 | $ tree /home/zhongmingmao/goproxy/goproxy/bin/cache |
方案
自定义
包导入路径
并将其映射到内部的vcs
仓库(Version Control Software)
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.