如何调试Go依赖包?Go 1.12模块下依赖源码调试方法咨询
如何在Go 1.12项目中替换依赖为本地修改版进行调试
嘿,这事儿我熟!在Go Modules环境下(哪怕是1.12版本),要把远程依赖换成你本地修改的版本来调试,只需要几步就能搞定:
第一步:克隆源码到本地
先把你在GitHub找到的example.com/foo源码克隆到本地任意目录,比如你可以执行:git clone <该项目的GitHub仓库地址> /your/local/path/foo记得把占位符换成实际的仓库地址和你想存放的本地路径。
第二步:修改项目的go.mod文件
打开你自己项目根目录下的go.mod文件,添加一条replace指令,把远程依赖指向你本地的源码目录:replace example.com/foo => /your/local/path/foo这条指令会告诉Go:当需要导入
example.com/foo时,不要去拉取远程仓库的代码,直接用你本地这个路径下的版本。第三步:本地修改并调试
现在你可以随意修改本地/your/local/path/foo里的源码了——加日志、改逻辑都没问题。修改完成后,回到你自己的项目执行go build或者go run,Go会自动使用你本地修改后的依赖版本,你就能看到调试日志或者验证修改效果了。第四步:恢复远程依赖(可选)
调试完成后,如果想换回官方的远程依赖,只需要把go.mod里刚才添加的replace行删掉,然后执行:go mod tidy这样Go就会重新拉取远程的官方版本了。
小提示
要确保你本地克隆的foo项目里的go.mod文件中,module声明的是example.com/foo,和你项目依赖的路径完全一致,不然可能会出现导入错误哦。
内容的提问来源于stack exchange,提问作者Dagang Wei
相关产品推荐
相关产品推荐

