哦,Vendor
vendor踩坑笔记:
接过公司里面X平台golang部分的后端后,需要新添加一个业务功能,美滋滋~ 拿过项目一顿写之后后遇到事了。
报错的描述如下:
报错的大意说:方法的入参类型不匹配,我们不能把 Assignment2/vendor/github.com/...
当作github.com/...
类型来使用。
出现的这个错误的原因就项目中使用的 beego的Controller使用了vendor进行管理,于是在这个包前多了个前缀 项目名/vendor/xxx
。但是呢,这个函数需要的是纯粹的beego的controller,加上这个前缀之后反到是不认识了。于是就出现了上面的错误。
查阅资料后了解:vendor是在GOPATH的管理之下的,大白话说:如果我们的项目在GOPATH目录下,那么项目中需要的依赖信息优先从vendor中获取。你看,我上面的报错就属于这个情况,我以为我在使用 github/astaxie/beego/controller , 而实际优先导入了 项目名/vendor/github/astaxie/beego/controller
当时我是如何解决的呢?
不是说优先导入vendor中的代码吗?好,我把你删除,你不就使用我本地的依赖了?(纯洁的微笑~)
事实证明,确实如此,删除vendor中的依赖后,一切归于平静,继续开发~
但是我提交代码让组里的大佬CR时,大佬发现vendor被我改了~~~,这才知道,项目之所以使用vendor管理项目就是为了让项目中的依赖可以跟着项目迁移,这样部署项目时不再去很多不同的地方拉取依赖,因为依赖都在项目里面。
所以删除vendor中的依赖并不是万全之策,可以删掉现在的vendor,重新用vendor初始化一下,让项目中的依赖重新让vendor管理。
# 下载govendor
go get -u -v github.com/kardianos/govendor
# 在当前目录中执行如下命令进行初始化,将依赖加入vendor统一管理
govendor init
govendor add +e
哦,Vendor的更多相关文章
- NopCommerce 在Category 显示Vendor List列表
实现效果如下: 1.在前台Web的Category Menu显示 Vendor; 2.点击Vendor 显示Vendor List列表: 主要配置步骤: 1.运行网站 Admin 后台 Categ ...
- Yii2 vendor出现bower-asset这么解决
yii\base\InvalidParamException: The file or directory to be published does not exist: /data/wwwroot/ ...
- thinkphp vendor
vendor('weixin.request'); 对应文件:Core\Library\Vendor\weixin\request.php import('weixin.request#class') ...
- 环信SDK报错处理方法obtain an updated library from the vendor, or disable bitcode for this target. for archit
ld: '/Users/momo/Desktop/ThreeFingers/Pods/EaseMobSDKFull/EaseMobSDKFull/lib/libEaseMobClientSDK_arm ...
- 安装node-sass提示没有vendor目录的解决办法
在node-sass目录下面新建一个vendor的空目录,然后运行npm/cnpm rebuild node-sass --save-dev即可,如果安装失败,会生成一个目录名为类似这样win32-x ...
- 关于 windows 下 node_modules\node-sass\vendor 的报错解决方法
项目git clone下来之后,运行npminstall, npm start报错代码如下: ERROR in ENOENT: no such file or directory, scandir ' ...
- laravel 安装完成后安装 vendor 目录
composer install 就是将composer.js 中的配置下载安装 生成vendor目录
- Microsoft Dynamics AX 2012: How to get Company,Customer and Vendor address in AX 2012
Scenario: “How to get Addresses of “Customer, Vendor and Company” 1) First we need to identify ...
- CommonsChunkPlugin的使用(关于angular2中的polyfills和vendor的疑问解决)
seed: angular2-webpack-starter(在github上可以找到) polyfills:提供api以方便兼容不同的浏览器 vendor:项目插件扩展 在学习ng2中一直不明白为什 ...
- 问题-XE8客户端访问Webservice时报“no selected dom vendor”
问题现象:XE8做的客户端访问XE8做的Webservice时,客户端报“no selected dom vendor”. 问题原因:原因不明,应该是用到了XML转换等方法吧.有高手了解的,请M我. ...
随机推荐
- 读懂操作系统(x86)之堆栈帧(过程调用)
前言 为进行基础回炉,接下来一段时间我将持续更新汇编和操作系统相关知识,希望通过屏蔽底层细节能让大家明白每节所阐述内容.当我们写下如下C代码时背后究竟发生了什么呢? #include <stdi ...
- 大话Ansible Ad-Hoc命令
Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. Ansible系列博文直达链接:Ansible入门系列 前言 通过前面的文章,大家 ...
- vue-cli搭建vue项目
1 安装node,npm npm i node npmnode -v npm -v 2 查看webpack版本,这里要注意,webpack如果为4.0,可能不兼容vue-cli 先卸载 npm un ...
- 理解javascript中的连续赋值
之前在扒源码时经常看到类似的连续赋值操作: var a = b = 1; 在某度搜了众多前辈的博客,总算对这骚操作有点眉目. Case analysis 首先,javascript中连续赋值最典型 ...
- 根据name获取控件
javascript: document.getElementsByName("name")[index]; jquery: $("tr[name='name']&quo ...
- Spring 自动装配 byName
自动装配 byName,这种模式由属性名称(方法名)指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans 的 auto-wire 属性设置为 byName.然后,它尝试 ...
- [Android应用开发] 04.页面跳转和数据传输
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 关于服务器运维人员,该如何管理很多VPS呢?
众所周知,服务器运营人员的工作内容,主要围绕着公司上下所有服务器.网络等硬件平台的运维工作,对每台服务器的状况,如磁盘.内存.网络.CPU等资源情况都要有明确的了解,还要定期对服务器进行巡检和修复,避 ...
- Chisel3 - 使用chisel-iotesters进行验证
https://mp.weixin.qq.com/s/KqyklKrPLtPm38sftMYlHA 1. 使用Maven获取库 Chisel相关的库基本上都可以使用Maven获取到(https ...
- git可视化打包更新文件
每次当我们修改了项目代码的时候,总需要理出来一个更新包发给测试部门或者给客户更新.当我们一次的修改的代码多了之后,我们就很难按照文件夹一个一个的去提交出来哪些的更新的,哪些是未修改的.于是乎就在度娘能 ...