面试题答案
一键面试常用手段和工具
- Go Modules:Go 1.13 及以后版本内置的依赖管理工具,可自动管理项目依赖及版本。
- Govendor:第三方工具,用于将项目依赖包复制到项目内部的 vendor 目录,锁定依赖版本。使用时先安装
govendor
,在项目目录执行govendor init
初始化,govendor add +external
可添加外部依赖。 - Glide:也是第三方依赖管理工具,通过
glide.yaml
和glide.lock
文件管理依赖及其版本。安装后在项目目录执行glide init
初始化,glide install
安装依赖。
使用Go Modules管理插件相关依赖版本
- 初始化Go Modules:在项目根目录下执行
go mod init <module-name>
,<module-name>
一般为项目的导入路径,如github.com/user/repo
。 - 添加依赖:当在代码中引入新的插件包时,执行
go get <package>
,Go Modules 会自动将该包及其依赖添加到go.mod
文件,并记录版本。例如引入github.com/someplugin/plugin
,执行go get github.com/someplugin/plugin
。 - 更新依赖:若要更新插件到最新版本,执行
go get -u <package>
。如果要更新所有依赖,执行go get -u
。 - 固定依赖版本:
go.mod
文件中手动修改依赖包的版本号,锁定插件版本。例如将github.com/someplugin/plugin v1.2.3
改为特定需要的版本。 - 下载依赖:在新环境或克隆项目后,执行
go mod tidy
可下载go.mod
文件中记录的所有依赖,并清理不需要的依赖。也可以直接执行go build
或go run
等命令,Go 会自动下载所需依赖。