0
Go: 多模块工作区 go work
source link: https://lianpf.github.io/posts/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91/10.golang-work/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
go 使用多模块工作区,让开发者可同时处理多个模块的…
一、使用go work
go 使用多模块工作区,让开发者可同时处理多个模块的开发。在Go 1.17
之前,只能使用go.mod replace
指令实现,虽然支持同时进行多个模块的开发,但使用它可能是很痛苦的。每次当你想要提交代码时,都不得不删除掉 go.mod
中的replace
才能使模块稳定的发布。
在go 1.18
后,官方提供了多模块工作区功能,即go work
。
1. 使用条件
- 需要
go 1.18
或更高版本
# 查看 go 版本
$ go version
go version go1.18 darwin/amd64
2.go work
支持命令
- 通常情况下,建议不要提交
go.work
文件到git
上,它主要用于本地代码开发 - 生成
go.work
文件:推荐在$GOPATH
路径下执行- 注意:若你的开发空间不在
$GOPATH
下,则在你的实际workspace
根目录下执行初始化
- 注意:若你的开发空间不在
init
工作区文件:
# 查看我的 GOPATH
$ go env | grep GOPATH
GOPATH="/Users/xxx/go"
# 查看我的某个 workspace
go $ pwd
/Users/xxx/gitHub/lian/go
go $ go work init # 初始化,生成 go.work工作区文件
go $ tree
【黄色】标识
go-gin-web
是在go
这个当前workspace
下的一个项目,同级的还有另外一个项目go-grammar
【红色】标识内的
go.work
和go.work.sum
是我们init
后,写入的初始化工作区文件。二者在workspace
根目录,与go-gin-web
同级。
- 添加新的模块到工作区:
go work use
$ go work use ./example # 添加一个模块到工作区
$ go work use ./example ./example1 # 添加多个模块到工作区
$ go work use -r ./example # 递归 ./example 目录到当前工作区
# 删除命令
$ go work edit -dropuse=./example
# 查看当前工作区文件路径,排查工作区文件是否设置正确
$ go env GOWORK
/Users/xxx/gitHub/lian/go/go.work
3.go.work
文件结构
- 和
go.mod
文件结构类似,支持Go
版本号、指定工作区和需要替换的仓库 - 文件结构示例:
最后, 希望大家早日实现:成为前端高手的伟大梦想!
欢迎交流~
本文版权归原作者曜灵所有!未经允许,严禁转载!对非法转载者, 原作者保留采用法律手段追究的权利!
若需转载,请联系微信公众号:连先生有猫病,可获取作者联系方式!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK