在 Linux 环境下,Go 语言主要使用 Go Modules 进行依赖管理,这是 Go 1.11 版本后官方推荐的依赖管理方案。
# 在项目目录下执行
go mod init <module-name>
# 例如
go mod init github.com/yourname/project
直接编写代码导入需要的包,然后运行:
go mod tidy
这个命令会自动分析代码中的导入语句,下载缺失的依赖并更新 go.mod 文件。
# 下载所有依赖
go mod download
# 整理依赖,添加缺失的,删除未使用的
go mod tidy
# 验证依赖是否正确
go mod verify
# 查看依赖关系图
go mod graph
# 将依赖复制到vendor目录
go mod vendor
由于网络原因,可能需要配置 GOPROXY:
# 设置代理
go env -w GOPROXY=https://goproxy.cn,direct
# 其他常用国内代理
# - https://goproxy.io
# - https://mirrors.aliyun.com/goproxy/
在 go.mod 文件中可以指定依赖版本:
require (
github.com/some/package v1.2.3
github.com/other/package v0.0.0-20210101000000-abcdef123456
)
可以使用以下命令升级/降级依赖:
go get github.com/some/package@v1.2.4
# 清理下载的模块缓存
go clean -modcache
对于需要同时处理多个模块的情况:
# 初始化工作区
go work init
# 向工作区添加模块
go work use ./module1 ./module2
依赖下载失败:
go clean -modcache
后重新下载版本冲突:
go mod why
查看依赖关系go get package@version
指定特定版本私有仓库认证:
.netrc
文件或设置 GOPRIVATE
环境变量go env -w GOPRIVATE=git.mycompany.com
go mod download
预下载依赖go mod tidy
保持依赖整洁go mod vendor
进行依赖固化通过以上方法,你可以在 Linux 环境下高效地管理 Golang 项目依赖。