如何在Makefile中清除Go环境变量?
解决Makefile中清除Go环境变量的问题
要在Makefile的目标中清除指定的Go环境变量,只需在执行go命令前,将需要清空的变量赋值为空即可。具体修改如下:
NEW_GOPRIVATE=github.com/user-name .PHONY: envs envs: GOINSECURE= GONOPROXY= GONOSUMDB= GOPRIVATE=$(NEW_GOPRIVATE) go env .PHONY: deps deps: GOINSECURE= GONOPROXY= GONOSUMDB= GOPRIVATE=$(NEW_GOPRIVATE) go mod tidy
原理说明
在Makefile的命令行前缀中,通过变量名=的方式设置变量为空,会覆盖当前shell环境中对应的变量值。执行go命令时,程序会优先使用命令行中定义的变量(这里是空值),而不是系统环境里的旧值。
验证方式
执行make envs后,检查输出中的GOINSECURE、GONOPROXY、GONOSUMDB应显示为空,此时再运行make deps,go mod tidy即可正常处理GitHub私有仓库的依赖拉取。
内容的提问来源于stack exchange,提问作者Yura
相关产品推荐
相关产品推荐

