0
点赞
收藏
分享

微信扫一扫

go work模块与go mod包管理是的注意事项

猎书客er 2024-04-21 阅读 8

如下图所示目录结构

在这里插入图片描述
cmd中是服务的包,显然auth,dbtables,pkg都是为cmd服务的。

首先需要需要将auth,dbtables,pkg定义到go.work中,如下:

在这里插入图片描述

在这样在各个单独的go mod管理的模块就可以互相调用了。一般情况下这些都是IDE自动进行的,在通过go work结合后,进入会go解析器会自动给不同的包生成一个版本,这个版本不会出现在go mod中例如使用go mod tidy命令

在这里插入图片描述
正是由于这个的生成在其他mod中才可以导入,但是有时候ide会出现一些问题,把这个显示在了go mod

在这里插入图片描述
这样直接在go mod显示会导致go在拉去第三方包时都通过线上拉去,导致抱不到这个本地生成的包。

在这里插入图片描述
go work也会报错
在这里插入图片描述

这里有两个解决方案,第一种直接将显示在go mod的包替换掉本地路径拉去如下:

在这里插入图片描述
另一种方案是是直接将显示的本地生成的删掉。

在这里插入图片描述
再重新go mod tidy即可,由解析控制从本地拉去。

举报

相关推荐

0 条评论