golang导入私有仓库

一、背景

在日常开发中经常需要导入自己私有库的包文件,但是使用  

 GOPROXY=https://goproxy.cn,direct

以后 默认下载包会从代理路径进行下载。私有仓库例如

e.coding.net                          不是https

www.test:6000                     不是 80端口

173.9.78.90                        直接ip

这类的符合规范的宝路径可能会下载不出来那么要怎么处理呢?在代码里肯定不能如下使用

import (
	"e.coding.net/micro-order/config"
	"www.test:6000/micro-order/config"
    "173.9.78.90 /micro-order/config"           
)

二、处理路径不规范办法

1.在这类异常的url路径我们可以借助git 替换成正常的url

git config --global url."http://www.test:6000/".insteadof "https://www.test.cn/"

也就是说在使用go get -v 的时候会替换掉www.test:6000  为 htts://www.test.cn 这样就能正常下载了。 这里关于go get -v 如何找到包地址的原理请参考如下文章

私有化仓库的 GO 模块使用实践https://studygolang.com/articles/35235icon-default.png?t=L9C2https://studygolang.com/articles/35235

三、处理私有库导入问题

1.例如在coding仓库中有一个public项目 caoxiukang123456/micro-order    git 仓库地址  

https://e.coding.net/caoxiukang123456/micro-order/micro-order.git 直接使用 
go get  https://e.coding.net/caoxiukang123456/micro-order/micro-order.git

会报错因为路径不符合规范,因为路径中出现了 : 

2.尝试修改go.mod文件如下 同样会报错这是

 go get  会从默认的代码管理工具 如git ,snv,hg拉取代码。golang将内置的这些托管平台代码 映射匹配到如github,apache等。

另外 也会通过设置的代理路径  GOPROXY=https://goproxy.cn,direct 中去拉去代码

所以私人的库是没法找且下载的。

3.在go 1.13版本后增加了GOPRIVATE 环境变量

go env -w GOPRIVATE=e.coding.net

通过它可以将 e.coding.net设置为私有仓库,单个go get遇到此域名下的所有依赖时,会直接通过git进行。这样解决了私有库的问题

此时编辑器上已经不爆红 

4.导入包名问题

在开始直接引入包的时候由于示例中 的包名 是micro-order在使用 go mod init 新建的时候将包名 定义成 order,此时在使用  

replace caoxiukang123456/micro-order => e.coding.net/caoxiukang123456/micro-order/micro-order.git v1.0.1 导入包名的时候会报错 
module declares its path as: order
               but was required as: caoxiukang123456/micro-order

这是因为在该包中设置的 名字为order 但是外部引入他的时候又使用了caoxiukang123456/micro-order 为包名,解决办法就是 将之前的项目 go.mod 删掉,从新

go mod init caoxiukang123456/micro-order 即可 或者引入 时修改成 

replace order => e.coding.net/caoxiukang123456/micro-order/micro-order.git v1.0.1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值