技术圈开发者交流群:

Go 多模块工作区模式的最佳实践

在使用 Golang 做编程的学习和工作中,经常会将一个项目拆分成多个模块,模块之间保持着一定层级的依赖关系。往往修改完上游模块后,必须发布以后,下游模块更新后才能使用修改后的上游模块,如果在下游模块使用时发现问题需要再次修改上游模块,然后再发布,下游模块再更新,如此往复,费时费力,大大降低开发和调试效率。

工作区(workspaces) 模式是 Go1.18 中引入的新功能,让多个模块并行开发和调试。无需在 go.mod 中使用 replace 来本地使用开发上游模块。

在没有工作区之前,假设有两个模块mod1mod2mod1依赖mod2,如果mod2中做了修改,mod1要想使用mod2修改后的功能,有两种方式:

  1. 发布mod2git中,mod1使用go get github.com/project/mod2 更新依赖
  2. mod1中使用replace替换mod2的 git 仓库到本地目录,调试完成后,再移除 replace替换指令。
GoLang 2024年11月24日 2094

Go 语言包管理利器:go mod

包管理工具已是编程语言的必备的工具,用于解决项目中复杂的依赖关系,提供包的版本控制、安装、更新等工具。Java 中有 MavenPython 中的 pip,还有 PHPcomposer 等,那么 Go 目前已经有非常成熟的包管理工具:go mod

在一个还没有使用go mod的项目中,需要使用go mod init初始化。

go mod init example.com/group/demo
GoLang 2024年03月15日 5700
鄂ICP备19028750号-1 @copyright 2024 tech1024.com