golang项目依赖管理工具go vendor,go mod

我们在进行golang项目编程的时候,一般会面临比较复杂的golang的依赖问题,可以通过go vendor或者go mod来解决

如果go get出错,在命令行进行如下设置:

go env -w GOPROXY=https://goproxy.cn,direct

首先下载govendor:

go get github.com/kardianos/govendor

下载完之后,到项目根目录下,执行初始化:

govendor init

govendor常用命令

命令描述
init初始换vendor目录
list列出项目所有的依赖包
add添加包到vendor目录下
update更新GOPATH依赖包到vendor目录
remove从vendor中删除依赖包
status列出所有包的状态:缺失、过期或更改过的包
fetch添加或者更新包到本地vendor目录
sync根据vendor.json去更新依赖包
get类似go get,拉取依赖包到vendor目录下

可以使用govendor fetch直接拉取源码下来:

govendor fetch github.com/go-gorm/gorm/

go mod必须是go 1.11版本及以上

先进行设置:

go env -w GOBIN=/Users/youdi/go/bin
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct // 使用七牛云的

go mod命令

命令说明
downloaddownload modules to local cache(下载依赖包)
editedit go.mod from tools or scripts(编辑go.mod)
graphprint module requirement graph (打印模块依赖图)
verifyinitialize new module in current directory(在当前目录初始化mod)
tidyadd missing and remove unused modules(拉取缺少的模块,移除不用的模块)
vendormake vendored copy of dependencies(将依赖复制到vendor下)
verifyverify dependencies have expected content (验证依赖是否正确)
whyexplain why packages or modules are needed(解释为什么需要依赖)

初始化项目:

// 进入到项目根目录,执行:
go mod init 
// 或者 go mod init 项目名称

然后可以使用go get拉取需要依赖的包即可,会自动在go.mod中生成记录

  • go mod download 下载模块到本地缓存,缓存路径是 $GOPATH/pkg/mod/cache
  • go mod edit 是提供了命令版编辑 go.mod 的功能,例如 go mod edit -fmt go.mod 会格式化 go.mod
  • go mod graph 把模块之间的依赖图显示出来
  • go mod init 初始化模块(例如把原本dep管理的依赖关系转换过来)
  • go mod tidy 增加缺失的包,移除没用的包
  • go mod vendor 把依赖拷贝到 vendor/ 目录下
  • go mod verify 确认依赖关系
  • go mod why 解释为什么需要包和模块

一般我们可以在导入别人的项目,或者修改了go.mod文件后通过:

go mod tidy

来初始化后者刷新项目的依赖

如果使用goland来开发,那么需要设置下go module和go proxy代理:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值