背景

今天在一个新项目文件下执行了go mod init初始化后,进行go build,报如下错误:

go: example imports
        github.com/realjf/goframe: github.com/realjf/[email protected]: parsing go.mod:
        module declares its path as: goframe
                but was required as: github.com/realjf/goframe

意思是,模块声明为goframe,但是却使用github.com/realjf/goframe作为包引入

解决方法

首先确认引入的包的go.mod文件里的module名称是否为github.com/realjf/goframe,

如果是,则进行下一步,如果不是,则需要修改为module github.com/realjf/goframe

然后是在新项目的go.mod文件中新增一行如下内容:

# 格式为:replace (module declares its path as:后边那部分) => (but was required as:后边那部分) 版本号
replace goframe => github.com/realjf/goframe v0.0.0 // indirect

之后重新执行go build,可以发现问题解决,并且在go.mod文件中多了一行:

require github.com/realjf/goframe v0.0.0-20200908095551-2f2da0b85d99