git如何搭建基于vendor的仓库

背景:
为了方便包管理,引入govendor进行项目的golang包管理,那有这个几个问题须要解决:
问题:
  • 如何编写vendor.json
  • 由于项目里有.git致使的文件目录不能访问问题如何更好的解决
目前,公司的项目里直接find是没法在vendor目录下找到其它依赖项目的.git的,因此确定是不能有
  • 如何用govendor管理项目包依赖,并能正确的在持续集成/持续发布平台上编译构建成功并最终发布
若是你本身初次尝试用vendor的话可能须要思考这些问题,特别是第一个问题vendor.json怎么写,后来我才发现这个不是本身写的(本身真的是sx),其实go.15以后的版本已经默认支持govendor了,因此不要担忧你的代码放在vendor下在你使用go build的时候它找不到,具体原理自行Google,本篇文章目的只有一个,如何从零搭建一个用govendor管理的repository,我直接上例子,就用gin这个例子吧步骤以下:
1.在git/gitlab上New repository//这一步不解释
个人项目是: code.xxx.org/caoge/caoge…
git clone 上边的项目地址
cd caoge.videoarch.edge-uploader
govendor init//若是没有安装govendor请安装 github.com/kardianos/g…
2初步配置vendor.json
不要方,你init以后会出现vendor/vendor.json的
govendor fetch -v github.com/gin-gonic/g…
而后你会看到json文件里面填充了信息,主要是reversion的版本信息,v1.2
而后,govendor fetch github.com/gin-gonic/g… ,可能时间比较长
完了以后你会看到vendor.json已经很完善了,你能够进行编译,也能经过

另外,不幸若是出现由于ssh登录而字体设置问题的缘由致使的git rm -r dirname失败的状况
参考:


目前比较讨厌的是 golang.org/x下边的文件没有好的解决方案,只能本身手动下载在指定依赖的地方而后cp进去,这个时候就会出现第二个问题,因此务必手动find+rm掉.git
各位大神有好的方案欢迎补充~~~
另外,发现一个坑,踩了2小时,(真佩服本身这么挫),在使用govendor fetch -v xxx进行包的依赖更新的时候,发现并无报错,可是拉下来的是空的目录,在vendor.json中也看到的revision是空的,由于我当时是拉取的新迁移的仓库,因此一直在怀疑我迁移的有问题,搞了半天,后来从新建立个仓库仍是这个问题,有点懵逼了,以前这样都好好的,我又尝试go get了下那个仓库,多试了几回发现服务proxy HTTP 503了,我才想起来可能和我配置的https代理有关,我去掉环境该https代理的环境变量以后果真govender fetch获取到了完整的项目,操!!
good luck!!!!
相关文章
相关标签/搜索