Golang如何使用go.mod配置加载本地模块
Golang使用go.mod配置加载本地模块
Go现在通过 go.mod
文件来配置模块加载使用是非常方便了,下面说下如何在当前项目中加载另一个本地正在开发的模块:
go.mod
module github.com/zhouzme/test-go go 1.12 require github.com/zhouzme/snail-go v0.0.0-20190401091717-1f0218b38bc8 replace github.com/zhouzme/snail-go => E:\Go\snail-go
默认使用 github.com/zhouzme/snail-go
包会到 github 上去下载,但这个包还在本地开发中并未push到线上,那么可以通过 replace 配置来重定向当前项目对该包的加载路径:
replace github.com/zhouzme/snail-go => E:\Go\snail-go
这里 E:\Go\snail-go
为本地包的绝对路径,这样写就可以了,当本地 snail-go
包代码修改后就可以在当前项目看到实时效果了,注意中间符号是 =>
Go mod使用
使用Go mod进行包管理,会使你进行项目移植的时候轻松许多
go mod是在go 1.11版本新加的特性,所以使用go mod要保证go的版本在1.11或之后。
将如下配置到你的go环境变量中
# on 表示只使用 Go Modules,而不去Go PATCH 下去找包 # 我使用的goland,第一次执行这命令报错 warning: go env -w GO111MODULE=... does not override conflicting OS environm # 原因是需要在设置中,在Go Modules配置里 Enable Go modules integration 前面的对号没有勾选 # 勾选保存后,需要重启goland 再执行就ok了 go env -w GO111MODULE=on
taps:
- go env :查看go的环境变量
- go env -w XXX=XXX :配置go的环境变量
- go env -u XXX=XXX :取消go的环境变量
命令:(只说几个重要的)
- go help mod:查看帮助
- go init:在当前文件夹(项目)下初始化一个新的
- modulego tidy:同步模块
步骤
建立工程
到工程目录下:go mod init (工程名)
工程名加不加都行
会生成一个go.mod文件
现在使工程中引入一些需要下载的包
使用go mod tidy 同步模块,如果此步骤无法同步包,有可能是网络问题,需要配置代理:
2022/11/15 当前好用代理配置如下 # 配置 GOPROXY 环境变量 go env -w GOPROXY=https://proxy.golang.com.cn,direct # 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选) go env -w GOPRIVATE=git.mycompany.com,github.com/my/private
此时的go.mod中出现了新的包 和 版本
配置成功
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
最新评论