go mod tidy拉取依赖包bug问题及解决

 更新时间:2023年09月18日 11:15:13   作者:lingwu_hb  
这篇文章主要介绍了go mod tidy拉取依赖包bug问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

go mod tidy

拉取缺少的模块,同时移除不用的模块

该命令会调用go get,然后go get会调用git的命令,拉取代码

go语言其他环境变量

GOSUMDB:

Go checksum database 的缩写,含义如其名字,用于在拉取模块版本时保证拉取到的模块版本数据未经过篡改,若发现不一致,也就是可能存在篡改,将会立即中止。

如果设置为"off",则禁止Go在后续操作中校验模块版本

  • GONOPROXY
  • GONOSUMDB 
  • GOPRIVATE

如果当前项目依赖了私有模块,则配置会涉及这三个环境变量。

例如公司的私有 git 仓库,又或是 github 中的私有库,都是属于私有模块,都是要进行设置的,否则会拉取失败。

简单来说就是应对,GOPROXY 设置的代理或 GOSUMDB 设定的 Go checksum database 代理无法访问模块时的情形。

建议直接设置 GOPRIVATE,它的值将作为 GONOPROXY 和 GONOSUMDB 的默认值,所以建议的最佳设置是直接使用 GOPRIVATE。

问题解决步骤

1.配置GO PRIVATE

由于拉取的公司gtiLab仓库代码是私有的,所以需要配置Go PRIVATE环境变量,用于应对GOPROXY设置的代理无法访问模块的情况。

2.https转ssh

由于https拉取代码需要输入用户名和密码,所以需要将所有的https转换成使用ssh的方式进行拉取

3.配置GIT_SSH

Git error: cannot spawn sh: No such file or directory

配置GIT_SSH后仍然没有解决问题,由于对应报错信息是cannot spawn sh,而不是ssh,所以执行步骤4

  • 4.将/Git/usr/bin加入到系统环境变量
  • 5.关闭vpn,否则会出现验证失败的报错
  • 6.GOPROXY需要配置国内代理

报错信息:

go:Get “https://proxy.golang.org/github.com/gin-gonic/gin/@v/v1.6.3.mod”: dial tcp 64.233.187.141:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

配置GOPROXY后

问题解决!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Golang中map的三种声明定义方式实现

    Golang中map的三种声明定义方式实现

    本文主要介绍了Golang中map的三种声明定义方式实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • golang 实现每隔几分钟执行一个函数

    golang 实现每隔几分钟执行一个函数

    这篇文章主要介绍了golang 实现每隔几分钟执行一个函数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Go语言使用sqlx操作MySQL

    Go语言使用sqlx操作MySQL

    sqlx 包作为一个扩展库,它在 database/sql 的基础上,提供了更高级别的便利,极大地简化了数据库操作,本文章将介绍如何通过sqlx包来操作 MySQL 数据库,感兴趣的可以了解下
    2024-11-11
  • Go语言Slice切片底层的实现

    Go语言Slice切片底层的实现

    本文主要介绍了Go语言Slice切片底层的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • Golang slice切片操作之切片的追加、删除、插入等

    Golang slice切片操作之切片的追加、删除、插入等

    这篇文章主要介绍了Golang slice切片操作之切片的追加、删除、插入等,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Go并发调用的超时处理的方法

    Go并发调用的超时处理的方法

    这篇文章主要介绍了Go并发调用的超时处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • golang 日志库ZAP[uber-go zap]示例详解

    golang 日志库ZAP[uber-go zap]示例详解

    ZAP是由Uber开源的高性能Go语言日志库,支持多种日志级别及基本信息打印,虽然ZAP本身不支持日志分割,但可以结合lumberjack进行日志切割,实现日志按文件大小、时间或间隔切割等功能,ZAP提供Logger和SugaredLogger两种日志记录器
    2024-10-10
  • Go项目配置管理神器之viper的介绍与使用详解

    Go项目配置管理神器之viper的介绍与使用详解

    viper是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式,下面这篇文章主要给大家介绍了关于Go项目配置管理神器之viper的介绍与使用,需要的朋友可以参考下
    2023-02-02
  • GO语言判断一个网段是否属于另一个网段的子网

    GO语言判断一个网段是否属于另一个网段的子网

    这篇文章主要介绍了GO语言判断一个网段是否属于另一个网段的子网的相关资料,内容介绍详细,具有一定的参考价值,需要的朋友可任意参考一下
    2022-03-03
  • Go与C语言的互操作实现

    Go与C语言的互操作实现

    在Go与C语言互操作方面,Go更是提供了强大的支持。尤其是在Go中使用C,你甚至可以直接在Go源文件中编写C代码,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-12-12

最新评论