主要观点: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 是另一种方法,可阅读相关文档了解更多。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。