go module,使用gitlab私有仓库作为项目的依赖包

栏目: 编程工具 · 发布时间: 6年前

内容简介:自从golang 1.11推出go moudle机制来更好的管理项目依赖后,就开始小范围尝试使用go mod来替换曾经的dep,实话实说还不错,很稳定,比起dep以及第三方的govendor来说也更加方便和快速。在曾经使用的项目上中,有一部分项目的依赖是放在github中的公开仓库的(如中间件、工具包),放入公开仓库中然通过dep将依赖拉取到vendor中。最近内部又做了个相关的依赖包,也不算工具,但这次多少跟业务有点结合,这次肯定不能放在github public仓库,于是就想着,放入内部的gitlab私

自从golang 1.11推出go moudle机制来更好的管理项目依赖后,就开始小范围尝试使用go mod来替换曾经的dep,实话实说还不错,很稳定,比起dep以及第三方的govendor来说也更加方便和快速。

在曾经使用的项目上中,有一部分项目的依赖是放在github中的公开仓库的(如中间件、 工具 包),放入公开仓库中然通过dep将依赖拉取到vendor中。

最近内部又做了个相关的依赖包,也不算工具,但这次多少跟业务有点结合,这次肯定不能放在github public仓库,于是就想着,放入内部的gitlab私有仓库中,想着以后能不能把github中的某一部分也迁移过来。

比如,通过RPC或HTTP调用服务时可以把公共的struct,service,method放入gitlab私有仓库中,这是必然的。

在public仓库好说,在go mod init gitlab.com/groupName/projectName后,不做任何处理直接直接 go mod vendor会自动拉取第三方依赖。但是如果是gitlab等私有仓库中是get不下来的。

这本质上还是解决go get的问题。所以,接下来,我们要解决go get私有仓库:

  • 获取gitlab的token

进入 Gitlab —> Settings —> Access Tokens ,然后创建一个 personal access token ,这里权限最好选择只读(read_repository)。

  • git配置添加access token

有了access token后,我们还需要在git中进行配置,这样才能go get下了私有仓库的包,需要把刚刚的token添加进git的请求头中,操作如下:

git config --global http.extraheader "PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN"
  • 配置git将请求从ssh转换为http

配置如下:

git config --global url."git@gitlab.com:groupName/projectName.git".insteadOf "https://gitlab.com/groupName/projectName.git"`

上述配置已经完成了,可以试着拉去gitlab私有仓库的代码:

go get -u -v gitlab.com/groupName/projectName

此时,执行go mod vendor也是可以正常拉取的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

产品心经:产品经理应该知道的60件事(第2版)

产品心经:产品经理应该知道的60件事(第2版)

闫荣 / 机械工业出版社 / 2016-4 / 69.00

本书第一版出版后广获好评,应广大读者要求,作者把自己在实践中新近总结的10个关于产品的最佳实践融入到了这本新书中。这"10件事"侧重于深挖产品需求和产品疯传背后的秘密,配合之前的"50件事",不仅能帮产品经理打造出让用户尖叫并疯传的产品,还能帮助产品经理迅速全方位提升自己的能力。 本书作者有超过10年的产品工作经验,在互联网产品领域公认的大咖,这本书从产品经理核心素养、产品认知、战略与规划、......一起来看看 《产品心经:产品经理应该知道的60件事(第2版)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码