美文网首页
Go Mod对比Go Vendor

Go Mod对比Go Vendor

作者: 云爬虫技术研究笔记 | 来源:发表于2019-03-13 23:32 被阅读0次

之前写Go的时候都是直接Deb或者更暴力的Go get来安装依赖包,也是因为那时候为了赶项目直接走最直接的方法,现在有点时间了,来研究一下目前大家常使用的Go包管理器。

今天我们要介绍的两种方式是Go ModGo Vendor

1.Go Mod

1.11版本之后开始能支持的一个包的管理,1.12版本正式GA解决的问题是golang不再依赖gopath的设置,下载下来的包可以直接使用。

1.1 存在问题:对使用者不友好

目前已经更新到1.12版本,但是go mod还是不太友好,使用起来不太方便。 开发的时候还是需要go get提前下载包,然后再应用。 只有要打包的时候执行一套命令,类似于下面这样:

go mod init ./  
go build main.go 或 go build -mod=vendor main.go  
go mod vendor #将包打到vendor文件夹下

一句话:用起来有点尴尬 。。。

2. Go Vendor

看过那么多大牛推崇的包管理工具,这个应该是目前来说呼声最高的。
我们可以直接在命令行输入如下命令
go get -u github.com/kardianos/govendor
进行安装
接着使用一套连招:

govendor init # 创建vendor目录,创建vendor.json文件  
govendor add +external #生成依赖包  
govendor update +vendor # 更新vendor的包命令
状态 缩写状态 含义
+local l 本地包,即项目自身的包组织
+external e 外部包,即被 $GOPATH 管理,但不在 vendor 目录下
+vendor v 已被 govendor 管理,即在 vendor 目录下
+std s 标准库中的包
+unused u 未使用的包,即包在 vendor 目录下,但项目并没有用到
+missing m 代码引用了依赖包,但该包并没有找到
+program p 主程序包,意味着可以编译为执行文件
+outside 外部包和缺失的包
+all 所有的包
命令 功能
init 初始化 vendor 目录
list 列出所有的依赖包
add 添加包到 vendor 目录,如 govendor add +external 添加所有外部包
add PKG_PATH 添加指定的依赖包到 vendor 目录
update 从 $GOPATH 更新依赖包到 vendor 目录
remove 从 vendor 管理中删除依赖
status 列出所有缺失、过期和修改过的包
fetch 添加或更新包到本地 vendor 目录
sync 本地存在 vendor.json 时候拉去依赖包,匹配所记录的版本
get 类似 go get 目录,拉取依赖包到 vendor 目录

3. 结论

go mod没成熟之前还是不要用了,死都不知道怎么死的,但是还是对它抱以极大的期望,毕竟是官方的“亲儿子”。

相关文章

  • Go Mod对比Go Vendor

    之前写Go的时候都是直接Deb或者更暴力的Go get来安装依赖包,也是因为那时候为了赶项目直接走最直接的方法,现...

  • 关于go 1.14版本在空项目中使用go mod的bug处理

    go 1.14在空项目中 使用go mod vendor会报错 这个是go1.14的一个bug 要处理这个就需要...

  • go mod vendor小计

    调试库代码 go mod现在已经深入人心。想用fmt.Printf大法调库代码,会发现缓存的go mod代码是不能...

  • go mod 使用汇总

    go mod 是什么 是官方的包管理工具 之前有非官方的,如 go vendor等工具 发展历程 在go的1.11...

  • 五. Go(Go protobuf)

    gopath开发模式和go modules开发模式对比 goland创建项目时没用go mod模式选项的坑 在Go...

  • Go常用命令之go mod

    Go mod Go mod 的三种开启模式 GO111MODULEon:支持Go mod模式off:不支持Go m...

  • 使用 Go mod 进行包管理并开启代理

    Go 从 1.11 开始支持 go mod,现在 Go 1.13 出来已经默认开启 go mod 了 ,可见日后 ...

  • gomod常用

    gomod文件初始化:go mod init找到项目依赖并导入:go mod tidy安装指定版本:go mod ...

  • 50.Go Mod 来创建 Gin 项目

    开启 Go mod 初始化 Go mod 使用Go mod 进行包管理,可以在$GOPATH/src 之外创建项目...

  • 说一说go mod

    [toc] 说一说go mod 写在前面,我们要切换到go mod吗 go mod是官方力推的go模块依赖管理的工...

网友评论

      本文标题:Go Mod对比Go Vendor

      本文链接:https://www.haomeiwen.com/subject/uwzxmqtx.html