在使用 Golang 做编程的学习和工作中,经常会将一个项目拆分成多个模块,模块之间保持着一定层级的依赖关系。往往修改完上游模块后,必须发布以后,下游模块更新后才能使用修改后的上游模块,如果在下游模块使用时发现问题需要再次修改上游模块,然后再发布,下游模块再更新,如此往复,费时费力,大大降低开发和调试效率。
工作区
(workspaces) 模式是 Go1.18 中引入的新功能,让多个模块并行开发和调试。无需在 go.mod
中使用 replace
来本地使用开发上游模块。
在没有工作区之前,假设有两个模块mod1
和mod2
,mod1
依赖mod2
,如果mod2
中做了修改,mod1
要想使用mod2
修改后的功能,有两种方式:
- 发布
mod2
到git
中,mod1
使用go get github.com/project/mod2
更新依赖 - 在
mod1
中使用replace
替换mod2
的 git 仓库到本地目录,调试完成后,再移除replace
替换指令。