1、依赖:使用大量其他人员提供的库
2、依赖管理的三个阶段 -->GOPATH-->GOVENDOR-->go mod
GOPATH
默认在~/go(unix,linux), %USERPROFILE%\go(windows)
所有依赖都放在gopath下面,会造成所有项目都放在gopath下,所有依赖也放在此目录下,
第三方代码与自己项目代码放在同一目录
mkdir /tmp/gopathtest
设置gopath
go env -w GOPATH=/tmp/gopathtest // 此处会把全局的gopath 都设置为 /tmp/gopathtest
export GOPATH=/tmp/gopathtest // 此处不会全局的gopath目录
GOPATH对目录要求_必须_要在目录下创建一个src 目录,src 目录是放置项目代码,可以放置多个项目
确认项目gopath 路径
注意:在idea 里面新开 terminal 输入 go env 查看
注意关掉:GO111MODULE
go env -w GO111MODULE=off // 此处会把全局的GO111MODULE 都关掉
根据项目进行关掉GO111MODULE
export GO111MODULE=off
关掉后确认对比
拉取依赖包
配置运行环境
测试go查找依赖包的过程
定义一个不存在的依赖库, go 先去系统的gopath路径下的src 目录中去找,如果找不到,去局部的gopath路径下的src目录中去找
注意:gopath做不同项目依赖不周版本的库的
GOVENDOR
vendor 解决不同项目依赖不同版本库的问题
GOVENDOR 需要在项目中创建 vendor 目录,把项目依赖的版本库放置到此目录下
每个项目用自己的vendor目录,存放第三方库
第三方管理 工具: glide ,dep,go dep .....
*gomode 版本管理 *
由 go 命令统一管理,不必关心目结构 初始化:go mod init 增加依赖: go get ,import 更新依赖: go get [@v....] , go mod tidy 命令行:导入依赖
1、 go get -u go.uber.org/zap 拉下来最新版本的依赖包 2、指定版本: go get -u go.uber.org/zap@1.12
go.mode 文件内容
require ( github.com/gin-gonic/gin v1.7.7 go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.7.0 // indirect > go.uber.org/zap v1.19.1 )
下载多个依赖版本后,可通过 go mod tidy 清结到其他版本(保留最后一个下载版本)
3、升级 依赖版本 1) 可直接在命令行下 采用get 命令不在版本号会拉取最新的版本 2) 直接在代码import 加入依赖
4、迁移项目
go mode: go mod init
go build ./... 下载所有依赖