GO 基于module管理依赖
1. 基础配置
1.配置环境变量(1.13以后不需要设置)
GO111MODULE=off禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。
GO111MODULE=on启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据 go.mod下载依赖。
GO111MODULE=auto,当项目在$GOPATH/src外且项目根目录有go.mod文件时,开启模块支持。
简单来说,设置GO111MODULE=on之后就可以使用go module了,以后就没有必要在GOPATH中创建项目了,并且还能够很好的管理项目依赖的第三方包信息。
使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum
2.配置代理
windows:
go env -w GOPROXY = https://mirrors.aliyun.com/goproxy/ # 国内可以使用阿里云镜像
linux:
export GOPROXY = https://mirrors.aliyun.com/goproxy/
3.新项目
#初始化,创建空的go.mod
go mod init $name
#修改go.mod,增加需要的包依赖
#下载依赖
go mod download
4.已有项目
查看依赖包#初始化,创建空的go.mod
go mod init $name
#查找依赖
go get …
5.查看依赖包
go list -m all
6.增加丢失的依赖,删除不需要的依赖
go mod tidy
7.增加、移除依赖
go mod edit --require
go mod edit --droprequire
eg:go mod edit --require=rsc.io/quote@v3.1.0 #增加
eg:go mod edit -droprequire=golang.org/x/text #移除
8.拷贝依赖到项目vendor
go mod vendor
9.升级依赖
#升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号)
go get -u
#升级到最新的修订版本
go get -u=patch
#升级到指定的版本号version
go get package@version
10.格式化go.mod文件
go mod edit -fmt
11.其他常用命令
go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录) go mod edit 编辑go.mod文件 go mod graph 打印模块依赖图 go mod init 初始化当前文件夹, 创建go.mod文件 go mod tidy 增加缺少的module,删除无用的module go mod vendor 将依赖复制到vendor下 go mod verify 校验依赖 go mod why 解释为什么需要依赖
2. 配置内部仓库
这个环境变量主要是为项目依赖的一些公司内部的公共软件包准备的,一般是设置成代码仓库站点的域名。假如我公司所有项目都放在用GitLab
搭建的内部代码仓库站点,这个站点的域名是code.lazycorp.com
,那么我们就把这个环境变量设置成
go env -w GOPRIVATE=code.lazycorp.com #windows
export GOPRIVATE=code.lazycorp.com #linux