3.6 KiB
3.6 KiB
项目配置说明
GOPRIVATE 环境变量配置
由于本项目使用私有 Git 仓库 (git.toowon.com),需要配置 GOPRIVATE 环境变量,让 Go 工具链知道这些模块是私有的,不要通过公共代理下载。
配置方法
方法一:临时配置(当前终端会话有效)
# macOS/Linux
export GOPRIVATE=git.toowon.com
# Windows (PowerShell)
$env:GOPRIVATE="git.toowon.com"
# Windows (CMD)
set GOPRIVATE=git.toowon.com
方法二:永久配置(推荐)
macOS/Linux:
-
编辑 shell 配置文件(根据你使用的 shell 选择):
# 如果是 zsh(macOS 默认) nano ~/.zshrc # 如果是 bash nano ~/.bashrc # 或 nano ~/.bash_profile -
添加以下内容:
export GOPRIVATE=git.toowon.com -
保存文件并重新加载配置:
# zsh source ~/.zshrc # bash source ~/.bashrc
Windows:
- 打开"系统属性" -> "高级" -> "环境变量"
- 在"用户变量"或"系统变量"中点击"新建"
- 变量名:
GOPRIVATE - 变量值:
git.toowon.com - 点击"确定"保存
方法三:使用 go env 命令(推荐,Go 1.13+)
# 设置 GOPRIVATE
go env -w GOPRIVATE=git.toowon.com
# 查看当前配置
go env GOPRIVATE
# 如果需要设置多个私有仓库,用逗号分隔
go env -w GOPRIVATE=git.toowon.com,github.com/your-org
验证配置
# 查看 GOPRIVATE 配置
go env GOPRIVATE
# 应该输出: git.toowon.com
其他相关环境变量(可选)
如果需要更细粒度的控制,还可以配置:
# GOPRIVATE: 私有模块,不通过代理下载,不校验 checksum
go env -w GOPRIVATE=git.toowon.com
# GONOPROXY: 不通过代理下载的模块(默认与 GOPRIVATE 相同)
go env -w GONOPROXY=git.toowon.com
# GONOSUMDB: 不校验 checksum 的模块(默认与 GOPRIVATE 相同)
go env -w GONOSUMDB=git.toowon.com
Git 认证配置
由于是私有仓库,还需要配置 Git 认证:
方法一:使用 SSH(推荐)
- 确保已配置 SSH 密钥
- 使用 SSH URL:
git config --global url."git@git.toowon.com:".insteadOf "https://git.toowon.com/"
方法二:使用 HTTPS + 个人访问令牌
- 在 Git 服务器上生成个人访问令牌
- 配置 Git 凭据:
git config --global credential.helper store - 首次访问时会提示输入用户名和令牌
方法三:在 URL 中包含凭据(不推荐,安全性较低)
# 在 go.mod 中使用(不推荐)
# 或者通过 .netrc 文件配置
常见问题
问题1:go get 失败,提示找不到模块
解决方案:
- 确认 GOPRIVATE 已正确配置
- 确认 Git 认证已配置
- 尝试手动克隆仓库验证:
git clone git@git.toowon.com:jimmy/go-commom.git
问题2:go mod download 失败
解决方案:
# 清除模块缓存
go clean -modcache
# 重新下载
go mod download
问题3:IDE 无法识别模块
解决方案:
- 重启 IDE
- 在 IDE 中执行:
go mod tidy - 确认 IDE 的 Go 环境变量配置正确
完整配置示例
# 1. 配置 GOPRIVATE
go env -w GOPRIVATE=git.toowon.com
# 2. 配置 Git SSH(如果使用 SSH)
git config --global url."git@git.toowon.com:".insteadOf "https://git.toowon.com/"
# 3. 验证配置
go env | grep GOPRIVATE
# 4. 测试模块下载
go get git.toowon.com/jimmy/go-commom@latest