【发布时间】:2020-10-15 01:07:36
【问题描述】:
我在一个大型项目中使用了一个名为“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保留它?
我read那根据https://tip.golang.org/cmd/go/#hdr-Maintaining_module_requirements:
go命令本身会自动更新go.mod文件以保持require语句的标准格式和准确性。任何找到不熟悉的导入的 go 命令都会查找包含该导入的模块,并自动将该模块的最新版本添加到 go.mod。 […]
任何 go 命令都可以确定缺少模块要求并且必须添加 […]。
也许有办法绕过它?
【问题讨论】: