回答

收藏

如何将 go.mod 中的 Go 模块依赖指向 repo 中的最新提交?

技术问答 技术问答 204 人阅读 | 0 人回复 | 2023-09-12

从 v1.11 Go 开始增加对模块的支持。3 i$ M  Y; g, n9 S% H7 @- i0 M
    go mod init go build2 q% x1 q- q/ |( z
将生成go.mod并go.sum所有版本的软件包都包含依赖文件。' h, H, O9 J' Y8 C7 `  m, U' p
如果模块没有任何版本,则使用该模块的最新提交。如果模块确实有版本,则选择最新作为依赖项。) `8 ?* T% V" i+ m3 I. R9 o% p2 Q
然而,有时我需要的功能还没有发布在发布的版本中,而是来自版本后的提交。如何设置go.mod它不指向模块的发布,而是指向模块存储库中的具体提交?# Z' k' L+ j5 k! V" y
看起来我可以在 go.mod 手动完成
4 d, e' |) v+ O0 q3 t9 i
    module /my/modulerequire (...github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe...)
    8 K1 x8 _. ?5 g% c( w# _3 r$ F2 H+ Z
哪里v0.0.0不符合上次发布的标签,2018121201909是提交时间戳,af044c0995fe还是提交哈希?手动搜索和输入此类信息还是有更好的方法?, o/ |8 G8 W/ d0 |! Z. C" k# m
                                                               
" S* O$ x6 W% z6 ^, o    解决方案:                                                                0 R# J: {' P5 p3 F6 f7 o+ j
                                                                只需在你想要的的哈希处获取:
/ D9 c, ~; d7 f& m, R2 x4 r1 v
    go get github.com/someone/some_module@af044c0995fe
    9 p3 S* A: N4 j% Y
‘go get’ 将正确更新依赖文件(go.mod、go.sum)。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则