登录
首页 >  Golang >  Go问答

我可以递归运行“go mod tidy”吗?

来源:stackoverflow

时间:2024-04-10 12:00:34 252浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《我可以递归运行“go mod tidy”吗?》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我有一个像这样的 go 存储库:

  • sdk包
    • go.mod
    • _示例
      • 一个
        • go.mod
      • 两个
        • go.mod
        • go.mod

我知道对于大多数用例(来自 wiki),不建议在单个存储库中使用多个模块,但我的场景符合其中列出的例外之一:我有使用示例,其中示例本身有一组复杂的依赖关系

我想要单独的 go.mod 文件,并且我们需要支持 go 1.12,因此不想使用此处概述的 goproxy 方法(尚)

我想在提交之前构建和整理每个模块,而不必这样做:

go build ./...
cd _examples/one
go mod tidy
cd ../_examples/two
go mod tidy
cd ../_examples/three
go mod tidy

显然,我可以编写一个 bash 脚本来在预提交挂钩上执行此操作,但是有没有办法通过 go 命令或更简洁的方式来执行此操作?

看起来 go mod tidy 只有一个选项(-v 标志,打印有关已删除模块的信息),所以不合适。


解决方案


go 1.18 中添加的“工作区”似乎有助于多模块工作区支持:https://go.dev/doc/tutorial/workspaces

因此,在上面的示例中,我将创建一个工作区:

go work init

然后添加我各自的子模块:

go work use _examples/one
go work use _examples/two
go work use _examples/three

今天关于《我可以递归运行“go mod tidy”吗?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>