如何将 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 imodule /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 vgo get github.com/someone/some_module@af044c0995fe
9 p3 S* A: N4 j% Y ‘go get’ 将正确更新依赖文件(go.mod、go.sum)。 |
|
|
|
|
|