- Gitlab 配置
- 配置域名,确保 
view-source:<http://git.arsyun.com/hos/go-lib-websocket?go-get=1里出现正确的域名而不是IP> 
- HTTPS 建议配置但不是必须(不配置则必须配置 
GOINSECURE 环境变量,或者通过 go env -w KEY=VALUE配置) 
 
- 项目里如何引用
- 其他使用 GOPATH 模式的项目不用改任何东西
 
- 新项目
- 启用 
GO111MODULE=on 
- 使用 GOPROXY 中国镜像
GOPROXY=https://goproxy.cn,direct 
 
- 对于局域网服务,绕过 
GOPROXY
- 配置 
GOPRIVATE=git.arsyun.com 
 
- 配置 Gitlab 访问权限
- SSH: 
~/.gitconfig 
- HTTP: 
~/.netrc 
 
- 使用指定分支进行引用
 
- 依赖的旧项目有两种使用方案
- 在新分支(统一暂时定为 
gomod 分支)启用 gomod 
- 使用 
replace 引用本地仓库 
 
 
 
一键配置脚本
#!/bin/bash
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOPRIVATE=git.arsyun.com
go env -w GOINSECURE=git.arsyun.com
git config --global --add url."git@git.arsyun.com:".insteadOf "<http://git.arsyun.com/>"
# 然后配置 gitlab 里的 ssh 公私钥
# 体验一下
go get git.arsyun.com/hos-device/go-srv-device-logcollector@5b6efee
旧项目如何迁移到 go mod
- 脚本替换 module 引用方式(更新 module 名字,更新 module 引用名字)
 
#!/bin/bash
declare -a groups=(hos hos-device hos-disk)
for x in ${groups[@]}; do
    echo $x
    sed -i "s,\\"$x/,\\"git.arsyun.com/$x/,g" **/*.go
    sed -i "s,\\"$x/,\\"git.arsyun.com/$x/,g" go.mod
done
go build ./... 验证是否完成迁移,如果出现小问题手动修复 
参考