在 Go 中本地修补依赖项

主要观点:Go 模块在开发期间是自包含的“虚拟环境”,通过多种方式可在本地修补依赖。
关键信息

  • 以 go-cmp 包为例,说明调试时可添加日志语句或临时修改其代码来测试依赖中的 bug。
  • 介绍了四种本地修补依赖的方法:使用模块替换指令(go mod edit -replace)、使用 Go 工作区(go work init、go work use)、使用 gohack 工具(go install、gohack get)。
  • 讨论了各方法的优缺点,gohack 快捷但可能误提交替换行,工作区方法更安全且明确。
    重要细节
  • 初始化测试模块时运行 go mod init example.com 并添加依赖 github.com/google/go-cmp v0.6.0。
  • 使用 go mod edit -replace github.com/google/go-cmp=$DEP 可设置替换指令。
  • go work init 初始化空工作区,go work use. $DEP 添加使用指令。
  • gohack get github.com/google/go-cmp 可获取依赖代码并添加替换行,可通过 gohack undo 撤销更改。
  • 还提到 go mod vendor 是另一种方法,可阅读相关文档了解更多。
阅读 16
0 条评论