1. 我本地项目结构如下:
2. 我想在for_daily的代码中导入pkgs中的ghl模块,网上也搜了replace的语法。一顿操作后,我在for_daily中go.mod中把ghl 模块加到require中去,然后用replace语法替换为本地模块。报错如下图,“malformed module path missing dot in first path element”
意思就是这个ghl模块写的格式不对,应该以域名的形式。 我也纳闷我就导入个本地模块怎么还扯到域名上去了, 后来网上各种搜,说是golang在本地没找到对应的文件,所以尝试从域名上去搜。
3. 那么问题还是出在了为啥goland没识别到我本地的模块文件,后来尝试在整个项目中也执行go mod init project(这个是模块名称),创建go mod 文件。 让我所有的模块都在一个大的module里面,结果还是报错。
4. 后来在Stack Overflow - Where Developers Learn, Share, & Build Careers
上 看到了一篇提问,人家require 本地模块的版本号有特定的格式:v0.0.0-00010101000000-000000000000,于是我就按照这个格式写,结果成功了。
这东西 真尼玛坑啊,后来发现版本号必须得是三位,就是两个小数点:
ghl v0.0.0 这样也可以。 ghl v0.0也不行, ghl v0.0.0.0 也不行。