执行go build报错go: go.mod file not found in current directory or any parent directory

 更新时间:2023年06月15日 16:44:06   作者:bootschool  
本文主要为大家介绍了执行go build报错go: go.mod file not found in current directory or any parent directory解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

执行命令go build -n

执行命令go build -n时提示:go: go.mod file not found in current directory or any parent directory; see 'go help modules'

根据提示信息我们可以看出是项目目录下缺少go.mod文件,那么如何才能生成此文件呢?

第一步:开启Go Modules功能

go module是go官方自带的go依赖管理功能,从Go 1.13版本正式推荐使用,它可以将项目下的所有依赖集中到 go.mod 文件,进行集中管理。使用go module管理依赖将会在项目根目录下生成两个文件 go.mod(负责记录当前项目的所有依赖)和go.sum(记录每个依赖库的版本和哈希值)

我们使用如下命令开启go modules功能:

go env -w GO111MODULE=on

GO111MODULE介绍

GO111MODULEgo modules功能的开关:

  • GO111MODULE=off,关闭go modules功能,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
  • GO111MODULE=on,开启go modules功能,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
  • GO111MODULE=auto,默认值,go命令会根据当前目录中是否有go.mod文件来决定是否启用module功能。这种情况下可以分为两种情形:
    1、当项目路径在GOPATH目录外部时, 设置为GO111MODULE = on2、当项目路径位于GOPATH内部时,即使存在go.mod, 设置为GO111MODULE = off

第二步:生成go.mod文件

在当前项目目录下,执行如下命令生成go.mod文件:

go mod init [项目文件夹名称]

Go Mod相关命令

可以使用go mod help命令进行相关命令和解释查看

go mod init <项目目录名称> //初始化模块,自动生成go.mod文件
go mod download [path@version] //下载指定依赖
go mod edit -json //编辑go.mod文件 可选项有-json、-require和-exclude
go mod graph //以文本模式打印模块需求图
go mod tidy //删除错误或者不使用的modules
go mod vendor //将依赖包复制到项目的vendor目录
go mod verify //验证依赖是否正确
go mod why //查找依赖
go list -m all //显示依赖关系
go list -m -json all //显示完整依赖关系

 也可以使用命令go help mod <command>查看mod先关命令使用方法。

以上就是执行go build报错go: go.mod file not found in current directory or any parent directory的详细内容,更多关于go build报错的资料请关注脚本之家其它相关文章!

相关文章

  • golang对etcd存取和数值监测的实现

    golang对etcd存取和数值监测的实现

    这篇文章主要介绍了golang对etcd存取和数值监测的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • goland服务热重启的配置文件

    goland服务热重启的配置文件

    这篇文章主要介绍了goland服务热重启的配置文件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 解读go在遍历map过程中删除成员是否安全

    解读go在遍历map过程中删除成员是否安全

    在Go语言中,通过for range遍历map时可以安全地删除当前遍历到的元素,因为遍历过程中的删除操作不会影响遍历的进行,但需要注意,遍历顺序是不确定的,删除元素不会导致程序错误,但可能会影响剩余元素的遍历顺序,在多线程环境下
    2024-09-09
  • Go中strings的常用方法详解

    Go中strings的常用方法详解

    这篇文章主要介绍了Go中strings的常用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Go语言中排序的3种实现方法

    Go语言中排序的3种实现方法

    在写代码过程中,排序是经常会遇到的需求,这篇文章主要为大家介绍三种常用的方法,文中的示例代码简洁易懂,需要的小伙伴可以参考下
    2023-08-08
  • Golang实现基于时间的一次性密码TOTP

    Golang实现基于时间的一次性密码TOTP

    基于时间的一次性密码 TOTP 是 OTP 的一种实现方式,这种方法的优点是不依赖网络,因此即使在没有网络的情况下,用户也可以生成密码,下面我们就来看看如何使用golang实现一次性密码TOTP吧
    2023-11-11
  • Go 结构体、数组、字典和 json 字符串的相互转换方法

    Go 结构体、数组、字典和 json 字符串的相互转换方法

    今天小编就为大家分享一篇Go 结构体、数组、字典和 json 字符串的相互转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • go 压缩解压zip文件源码示例

    go 压缩解压zip文件源码示例

    这篇文章主要为大家介绍了go压缩及解压zip文件的源码示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 详解如何使用Go语言进行文件监控和通知

    详解如何使用Go语言进行文件监控和通知

    在Go语言中,文件监控通常涉及到文件系统事件的监听,文件或目录的状态发生变化(如创建、删除、修改等)时,你的程序需要得到通知,所以本文给大家介绍了如何使用Go语言进行文件监控和通知,需要的朋友可以参考下
    2024-06-06
  • 详解如何在Go中如何编写出可测试的代码

    详解如何在Go中如何编写出可测试的代码

    在编写测试代码之前,还有一个很重要的点,容易被忽略,就是什么样的代码是可测试的代码,所以本文就来聊一聊在 Go 中如何写出可测试的代码吧
    2023-08-08

最新评论