Golang轻松解决循环依赖

如果你通过go vet检查代码,或者编译代码时,显示循环依赖的报错,它大概长这样子:

package code/app/user/service
        imports code/app/system/service
        imports code/app/user/service: import cycle not allowed

如果你没有类似的报错,你只得到一个包名code/app/user/service你可以使用命令让他显示上面的报错。

go list code/app/user/service

得到报错之后,你需要搜索代码中导入此包code/app/user/service的那行代码,最重要的是搜索范围,范围为code/app/system/service包的目录,也就是service

你会搜索到导入包的那一行代码,然后搜索该包在该文件中哪些地方使用了,修改代码实现,不再导入此包,问题就会解决。

后记

我遇到这个问题之后,参考了很多文章,他们都推荐了一些显示包依赖关系的可视化工具,我觉得不如go自带的工具方便。

猜你喜欢

转载自blog.csdn.net/Deng_Xian_Sheng/article/details/129435409