Go 1.16+ 默认启用 go mod,初始化用 go mod init,添加依赖推荐 go mod tidy;go get 自 Go 1.17 起仅用于安装工具,需用 go install;代理配置需含 ,direct 以支持私有模块。

Go 1.16+ 已默认启用 go mod,不再需要手动安装包管理工具——go get、go install 等命令本身已内建模块支持,关键在于正确初始化和维护 go.mod 文件。
如何初始化一个新模块并添加依赖
在项目根目录下运行 go mod init example.com/myapp,会生成 go.mod 文件。此后所有 go build、go run 或显式 go get 都会自动记录依赖到该文件中。
- 首次引入外部包(如
github.com/gin-gonic/gin),直接在代码中import并运行go build即可触发自动下载和记录 - 若只想下载不编译,用
go get github.com/gin-gonic/gin@v1.9.1(支持版本号、commit hash、branch) -
go get -u会升级已有依赖及其间接依赖,慎用;更安全的是go get -u=patch只升补丁版
为什么 go get 不再默认写入 go.mod?
从 Go 1.17 开始,go get 默认只用于安装可执行工具(如 golang.org/x/tools/cmd/goimports),不再自动修改依赖列表——这是为区分「库依赖」和「开发工具」。
- 想添加库依赖:改用
go mod tidy(先删掉未使用的 import,再运行它自动补全) - 想安装命令行工具:用
go install golang.org/x/tools/cmd/goimports@latest(注意是go install,不是go get) - 旧项目升级后出现
go: downloading ...但go.mod没更新?大概率是因为用了go get而非go mod tidy
如何切换代理加速国内依赖下载
Go 模块默认走官方 proxy(proxy.golang.org),国内直连常超时或失败。需配置环境变量或 go env -w:
Orz企业网站管理系统整合了企业网站所需要的大部分功能,并在其基础上做了双语美化。压缩包内有必须的图片psd源文件,方便大家修改。 Orz企业网站管理系统功能: 1.动态首页 2.中英文双语同后台管理 3.产品具有询价功能 4.留言板功能 5.动态营销网络 6.打印功能 7.双击自动滚动 Orz企业网站管理系统安装 1、请将官方程序包解压后上传至您的虚拟主机即可正常使用; 2、后台管理面板登录:
立即学习“go语言免费学习笔记(深入)”;
- 临时生效:
GOPROXY=https://goproxy.cn,direct go build - 永久生效:
go env -w GOPROXY=https://goproxy.cn,direct -
direct表示对私有仓库(如公司内网 Git)跳过代理,必须显式保留 - 避免设成
https://goproxy.cn(漏掉,direct),否则私有模块会报module not found
常见错误:require github.com/xxx/yyy: version "v1.2.3" invalid
这不是网络问题,而是模块路径与实际 tag 不匹配。典型原因:
- 作者把
v1.2.3tag 打在了非根目录的子模块上(比如github.com/xxx/yyy/v2),而你import的是github.com/xxx/yyy - 模块启用了语义化版本 v2+,但
go.mod中未带/v2后缀(正确应为github.com/xxx/yyy/v2) - 本地缓存损坏,可尝试
go clean -modcache后重试
模块路径中的 /v2、/v3 不是可选后缀,是 Go 模块系统强制要求的导入路径组成部分——漏写或错写都会导致解析失败。









