解决Go报错:parsing go.mod :module declares its path as: ××× but was required as: ×××

记录一下学习Go遇到的一些小问题。

问题描述

在go项目中,导入一个包名不等于其包导入路径名的最后一段的包时候发生报错:
在这里插入图片描述

原因分析:

认为是import 的包名不对。

修改import 至与go.mod的声明一致:

import"git.woa.com/trpcprotocol/test/helloworld

结果还是报错:
在这里插入图片描述


解决方案:

所以认为包名跟其文件路径是直接相关的,导入的时候引入的包名其实是需要提供其包所在git上的路径的。
最后修改成:

import "git.woa.com/***/helloworld/stub/git.woa.com/trpcprotocol/test/helloworld"
module git.woa.com/***/helloworld/stub/git.woa.com/trpcprotocol/test/helloworld

可以成功导入

发现

在修改git上go.mod文件的时候发现,每一次的更新都会有慢一次版本。当我更新go.mod之后,使用go get 无法发现go.mod
的更新。当我再次更新go.mod之后,使用go get 可以发现上次更新的修改。