go mod tidy 总是安装最新依赖,如何查找哪个模块导致某个包安装最新依赖,提供一个小工具 - V2EX
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
body007

go mod tidy 总是安装最新依赖,如何查找哪个模块导致某个包安装最新依赖,提供一个小工具

  •  
  •   body007 Oct 21, 2023 1858 views
    This topic created in 949 days ago, the information mentioned may be changed or developed.

    安装: go install github.com/jan-bar/interesting/findModVer@latest

    执行:findModVer d:\myproject

    结果如下图所示:

    根据结果可以找到哪个依赖导致google.golang.org/grpc v1.45.0使用了这个版本,这样每次执行go mod tidy会自动修改该模块到v1.45.0版本。我看了下github.com/spf13/viper v1.11.0就是用的google.golang.org/grpc v1.45.0版本,因此我可以通过限制viper v1.11.0来限制grpc v1.45.0,这时候执行go mod tidy就会限制grpc v1.45.0。通过我这个小工具可以方便的找到哪些库是因为哪个库导致go mod tidy后修改自己模块的该库到最新版本。

    当前也可以在自己库里用如下方法限制版本,但如果该库是公共库,其他人使用时也需要加上这个限制。

    replace ( google.golang.org/grpc => google.golang.org/grpc v1.45.0 ) 
    4 replies    2023-10-21 19:18:14 +08:00
    sofukwird
        1
    sofukwird  
       Oct 21, 2023 via Android
    新版本 v1 总是兼容旧的 v1 ,要不兼容时发 v2 版本,golang 的版本管理就是这么设定的,如果你用的库不遵循这条规则建议使用遵循该规则的库或者 fork
        2
    body007  
    OP
       Oct 21, 2023
    @sofukwird 其实我是想升级一些库,结果 go mod tidy 把另一个库也更新了,我不知道是哪个库升级导致的。最终找到是 viper 这个库导致的。最终我把 viper 设置为旧版本,这个版本 viper 和我当前项目用的 grpc 是同一个版本。

    我也觉得你说的对,但是像 grpc 这么基础的库,1.45.0 和当前最新版 1.59.0 也是 v1 版吧,里面有的结构体和对象都不兼容。导致我编译失败,最终找到原因还是 viper 这个配置文件库依赖的 grpc 用了新版本导致。

    经验告诉我没事别乱升级
    body007
    lance6716
        3
    lance6716  
       Oct 21, 2023 via Android
    是不是 go mod why 的功能
    body007
        4
    body007  
    OP
       Oct 21, 2023
    @lance6716 确切的说是 go mod 机制的问题,更确切的说是有些库不安规范修改代码。按照 semver 版本号规范来说 v1.x.x -> v1.y.y 不应该有不兼容更新。但我就遇到这种问题,还是 grpc 库的问题。go mod 会找到当前模块依赖的所有库,相同的库会使用依赖里面最新版本,你可以看看我在 reddit 上的回复。

    https://www.reddit.com/r/golang/comments/17cyxv9/a_tool_to_find_out_which_module_of_gomod_all/?utm_source=share&utm_medium=web2x&cOntext=3
    About     Help     Advertise     Blog     API     FAQ     Solana     4896 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 54ms UTC 09:42 PVG 17:42 LAX 02:42 JFK 05:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86