我在一个大型项目中使用了一个名为“ yaegi ”的开源项目。
我需要使用旧版本的 "yaegi": v.0.8.11
,所以我修改了go.mod
文件并替换了:
github.com/traefik/yaegi v0.9.2 // indirect
但是github.com/containous/yaegi v0.8.11
当我构建项目时,它开始更新所有模块并将其替换回最新版本:
root@ubuntu:~/myproj1# go build main.go
go: finding module for package github.com/traefik/yaegi/stdlib/unsafe
go: finding module for package github.com/traefik/yaegi/stdlib
go: finding module for package github.com/traefik/yaegi/interp
go: found github.com/traefik/yaegi/interp in github.com/traefik/yaegi v0.9.2
如何防止它并使用旧版本保留它v.0.8.11
?
我根据https://tip.golang.org/cmd/go/#hdr-Maintaining_module_requirements阅读:
go
命令本身会自动更新go.mod
文件以保持标准格式和require
语句的准确性。任何找到不熟悉的导入的 go 命令都会查找包含该导入的模块,并自动将该模块的最新版本添加到 go.mod 中。[…]
任何 go 命令都可以确定缺少模块要求并且必须添加 […]。
也许有办法绕过它?