zoukankan      html  css  js  c++  java
  • Vendor

    vendor踩坑笔记:

    接过公司里面X平台golang部分的后端后,需要新添加一个业务功能,美滋滋~ 拿过项目一顿写之后后遇到事了。

    报错的描述如下:

    image-20200604202529966

    报错的大意说:方法的入参类型不匹配,我们不能把 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
    
  • 相关阅读:
    JavaScript数组API
    爱上经典之王梦麟《阿美阿美》
    爱上经典之《蜗牛与黄鹂鸟》
    爱上经典之《兰花草》
    爱上经典之《让我们看云去》
    爱上经典之卓依婷《三月里的小雨》
    爱上经典之孟庭苇《冬季到台北来看雨》
    有故事看SQA作用
    转自scmlife趣谈质量管理与工程改进面试
    Mysql之批处理
  • 原文地址:https://www.cnblogs.com/ZhuChangwu/p/13047550.html
Copyright © 2011-2022 走看看