开了gomod不识别gopath_Go Mod对比Go Vendor

之前写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的包命令
状态缩写状态含义+locall本地包,即项目自身的包组织+externale外部包,即被 $GOPATH 管理,但不在 vendor 目录下+vendorv已被 govendor 管理,即在 vendor 目录下+stds标准库中的包+unusedu未使用的包,即包在 vendor 目录下,但项目并没有用到+missingm代码引用了依赖包,但该包并没有找到+programp主程序包,意味着可以编译为执行文件+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没成熟之前还是不要用了,死都不知道怎么死的,但是还是对它抱以极大的期望,毕竟是官方的“亲儿子”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
go mod vendor是一个命令行工具,用于将主模块的vendor目录重置为包含构建和测试所有主模块包所需的所有包。它不包括供应商包的测试代码。如果主模块的根目录中存在vendor目录,并且主模块的go.mod文件中的go版本为1.14或更高版本,则会自动使用该vendor目录。要显式启用供应商功能,请使用标志-mod=vendor。要禁用供应商功能,请使用标志-mod=readonly或-mod=mod。go mod vendor还有其他好处,例如当从版本控制系统中删除依赖项或代理服务器丢失模块时,可以使用vendor解决问题。此外,它还可以帮助您跟踪和调试依赖项,并在需要时进行测试更改。运行go mod tidy和go mod vendor后,您的更改将被替换。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [Go:go mod vendor 使用](https://blog.csdn.net/test1280/article/details/120855865)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vendor使用:golang的vendor是个啥?](https://blog.csdn.net/qq_39458487/article/details/124803432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值