Golang中go mod vendor执行失败原因排查及求助
Golang中go mod vendor执行失败原因排查及求助 以下是我的命令行:
PS D:\src\github.com\lvhuat\http-service-example> go list -m all | findstr logrus
github.com/sirupsen/logrus v1.3.0
PS D:\src\github.com\lvhuat\http-service-example> go mod vendor
go: github.com/Sirupsen/logrus@v1.3.0: parsing go.mod: unexpected module path "github.com/sirupsen/logrus"
go: error loading module requirements
PS D:\src\github.com\lvhuat\http-service-example>
我已经检查了项目中所有的依赖项,发现没有代码依赖于github.com/Sirupsen/logrus(大写版本),只有github.com/sirupsen/logrus(小写版本)
go.mod
module github.com/lvhuat/http-service-example
require (
github.com/DeanThompson/ginpprof v0.0.0-20170218162546-8c0e31bfeaa8
github.com/gin-gonic/gin v1.3.0
github.com/go-sql-driver/mysql v1.4.1
github.com/golang/protobuf v1.2.0
github.com/gorilla/websocket v1.4.0
github.com/jinzhu/gorm v1.9.2
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a // indirect
github.com/json-iterator/go v1.1.5
github.com/lestrrat-go/file-rotatelogs v2.2.0+incompatible
github.com/lestrrat-go/strftime v0.0.0-20180821113735-8b31f9c59b0f // indirect
github.com/lworkltd/kits v0.0.4
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5
github.com/sirupsen/logrus v1.3.0
)
但是当我运行go build -v时,一切似乎都很正常。
更多关于Golang中go mod vendor执行失败原因排查及求助的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于Golang中go mod vendor执行失败原因排查及求助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这个问题是由于依赖项中存在大小写不一致导致的。go mod vendor 对模块路径的大小写敏感,而 go build 相对宽松。
在你的 go.mod 中,github.com/sirupsen/logrus v1.3.0 是小写,但某个间接依赖可能引用了大写的 github.com/Sirupsen/logrus。
运行以下命令来检查和修复:
go mod tidy
go clean -modcache
go mod vendor
如果问题仍然存在,检查所有依赖的 go.mod 文件:
go mod graph | findstr -i logrus
这会显示所有依赖 logrus 的模块,包括大小写版本。
你也可以尝试强制替换:
go mod edit -replace github.com/Sirupsen/logrus=github.com/sirupsen/logrus@v1.3.0
go mod vendor
或者直接删除 vendor 目录后重新生成:
rm -rf vendor
go mod vendor
在 Windows 上删除 vendor 目录:
rmdir /s vendor
go mod vendor
问题通常出现在 github.com/lworkltd/kits v0.0.4 或其他间接依赖中,它们可能引用了大写的 Logrus。运行 go mod tidy 通常会解决这种大小写不一致的问题。

