goroot,gopath,go111module,go.mod之间的关系

Golang学习笔记
goroot,gopath,go111module,go.mod之间的关系

前提

如果你自己不打算开发同样的解释器工具 对于旧版本的历史不需要过度追根问底,就算是,也应该参考更好的方法,如果需要刨根问底可以自行百度

程序配置里80%的问题都是路径问题

go配置需要搞清楚的几个概念,部分概念也适用其它程序的配置参考

go项目依赖文件存放的位置

go解释器所在位置 %groot%

go默认指定代码资源存放位置 %gopath%

你自己的偏好的代码资源存放位置 not in gopath or in goroot
GOMODCACHE通过mod缓存位置,相当于本地mod仓库,通过go env查看位置

有了这些概念,接下来我们引入以下的概念-----------------------------------------------------------

go111module 新老版本的依赖管理开关,
确保你的go版本大于1.11go version(最好大于1.13),否则是没有GO111MODULE这个模块的。
off模式,相当于需要手动或者半手动去获得项目依赖文件,并存放于 %goroot%\src,或者%gopath%\src里。
on模式,–相当于开启一个依赖管理器,你输入命令时,go会从云仓记录里找到对应的mod,并在本地项目里创建go.mod文件用于管理,依赖 会保存在GOMODCACHE位置
go.mod文件
右键以文本文件打开可以看到以下格式内容

module XXX #XXX为项目名和它所在的目录名没有太多关联 类似于公司名和该公司所在建筑物名称的关系

go 1.18 #指定解释器版本

require {
#依赖
}

与go.mod文件所在同一层的文件夹将被视为该项目的模块** 类似于这个公司的各个部门**

所以养成用文件夹管理模块的习惯

引用自编模块时 因该是"项目名/模块名[/子模块]…“而不是"文件夹/文件夹”

关于go配置管理 : 强烈推荐推荐使用配置go自带的配置文件来配置环境明显的好处有三:
1.操作方便可以写成批处理
2.配置文件便于系统迁移,最爽的一个好处
3.不会把系统环境变量搞的乱七八糟
go的配置文件默认位置在%appdata%\go\下文件名时env(如果没有,可以使用go env 查看环境配置然后自己拉取,网上有相关的介绍,但是我没找到windows下的操作)
但是我们也只需要配置几个路径和go111module开关,所以只需要几行而已其他如果没有特殊要求默认即可,如果有特殊要求可以通过
go env >>x:\xx\env,
打开env删除所有的“set”字符既可得到当前go版本相对应的完整配置文件

  GO111MODULE=on
  GOBIN=
  #gobuild缓存
  GOCACHE=C:\Users\Administrator\AppData\Local\go-build 
  #GOENV=C:\Users\Administrator\AppData\Roaming\go\env  这一样只能通过系统环境变量设置,此是默认路径,可以在系统环境指定路径
  #GOMODCACHE设置go.mod依赖缓存
  GOMODCACHE=K:\GOPATH\pkg\mod
  GOPATH=K:\GOpath
  GOPROXY=https://goproxy.cn,direct
  GOROOT=K:\Program Files\Go  		
#以上配置可以按照自己的需求配置

将以上文件保存到你自己想要的位置
假设全路径为 X:\goenv\env (注:env是你保存的文件不是目录)
然后打开cmd(管理员模式) 使用命令 setx GOENV “X:\goenv\env”
L/M平台使用 export GOENV=XXX设置

setx Path "%Path%;x:\xx\go\bin" #如果是修改所有用户可用则需用 setx Path "%Path%;x:\xx\go\bin" /M
setx GOENV "x:\goenv\env"

保存为bat文件,系统重装后看好路径稍作修改就可执行比去系统环境变量界面设置方便太多了
重装系统后只需要在系统环境变量添加

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

accpvp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值