执行go build报错go: go.mod file not found in current directory or any parent directory
作者: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介绍
GO111MODULE
是go 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 = on
2、当项目路径位于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报错的资料请关注脚本之家其它相关文章!