记录一次Goland设置gomod的问题

背景

手头的go升级到了1.13,默认GO111MODULE开启。想想既然官方都这么做了,就使用gomod吧。我自己平常是使用Goland进行开发的,跟着官方教程走了一遍gomod。在goland中发现代码不能正常跳转,但是能正常运行。

解决办法

首先确认了一下,自己的goland的版本没有问题是能支持gomod。翻了一边goland的官方教程。发现没有还是不能跳转代码。不着急,仔细看看自己的工程目录。发现External Libraries下面只有一个Go SDK,没有自己的导入的三方包,当然不能跳转代码;这时候有人就要问那为什么运行没有出错了,这个其实就是gomod的功能,go module管理的包放在$GOPATH/pkg/mod/下。具体内容就不展开了,官文上写的很清楚。好,回到问题上来,现在的问应该就是怎么把引用的包放到External Libraries下。这里我自己犯了一个错误,其实goland官方教程一开始就讲了这个问题,按组合键⌥⏎选择sync就可以同步依赖包了。只不过当时同步时间过长卡住了,我以为不是这个。后续我还发现可以通过go mod tidy也可以达到相同的效果。

总结

这个问题也不能算是一个问题,毕竟不是一个真正的技术问题,但是通过问题我意识到做事情需要冷静分析,看文档要仔细,你能碰到的问题几乎都在文档里写着。