golang 本地调试第三方库的代码

更新日期: 2020-06-03 阅读次数: 9693 字数: 261 分类: golang

正在用的 golang 三方库 GoAdmin,发现有个时间区间组件的 bug。

  • 时间组件无法切换 中文 locale
  • 过滤功能无效。目前猜测是 locale 问题导致的日期格式问题

想自己调试一下看看能否解决。

但是如何调试呢?

首先,我是想直接修改 GOPATH/src 下的代码,然后重新编译。但是发现

> ls $GOPATH/src/github.com/GoAdminGroup/

是空的。。。

解决方法

使用 go mod 替换源的方式:

go mod edit -replace github.com/GoAdminGroup/go-admin=/home/zhongwei/work/go-admin

这样就将 github 的库替换为了本地版本。

此时,打开 mod 文件,会发现 go.mod 的文件结尾多了一行:

replace github.com/GoAdminGroup/go-admin => /home/zhongwei/work/go-admin

加入调试代码,再次 go build 编译,就能看到效果了。

参考

  • https://thewebivore.com/using-replace-in-go-mod-to-point-to-your-local-module/
  • https://stackoverflow.com/questions/39215629/importing-local-changes-of-a-package-without-pushing-code-in-golang

为何 GOPATH/src 下是空的

原来新版本的 golang 采用了新的依赖管理方式,新的依赖目录在 GOPATH/pkg/mod 下。

例如:

> ls $GOPATH/pkg/mod/github.com/!go!admin!group/
'go-admin@v0.0.0-20200417103543-48563f496c5e'/  'go-admin@v1.2.13'/  'go-admin@v1.2.8'/  'go-admin@v1.2.9'/  'html@v0.0.1'/  'themes@v0.0.30'/  'themes@v0.0.31'/  'themes@v0.0.36'/

参考:https://juejin.im/post/5c9c8c4fe51d450bc9547ba1

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式

tags: go mod edit debug 技巧