登录
首页 >  Golang >  Go问答

如何在存储库中创建嵌套的 go 模块?

来源:stackoverflow

时间:2024-04-20 18:33:33 116浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《如何在存储库中创建嵌套的 go 模块?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我很难理解如何使用包构建 go 项目,尤其是当该项目嵌套在存储库中时。

我希望在我的 go 应用程序的存储库中具有以下文件夹结构。

github.com/user/repo
└── client
└── server
    └── 
    └── package1
        └── 

我想在存储库的 server 目录中创建我的 go 应用程序/模块。但是我不确定这样做的正确或“最佳实践”是什么。

  1. 我不确定是否应在存储库的根目录或子目录 server 中创建 go.mod 文件?
  2. 我的 go.mod 文件中的模块名称应该是 github.com/user/repogithub.com/user/repo/server 吗?
  3. 如果我在 server 文件夹的 package1 子目录中有一个名为 package1 的包,那么导入它的导入路径是什么?

正确答案


一般最佳实践是将 go.mod 文件放在存储库的根目录下,并且每个存储库仅包含一个模块。然后,存储库中的所有包都将位于同一模块中并共享相同的依赖项。

可以在单个存储库中定义多个模块,但这样做会增加大量维护开销:如果您有多个模块,它们将被视为完全独立的;您必须显式管理它们之间的依赖关系,并且必须显式地为它们标记单独的版本。

对于大多数项目来说,额外的开销带来的好处很少:主要是它允许您在不同时间为不同模块标记稳定版本。根据我的经验,对于大多数项目来说,额外的灵活性不值得付出维护成本。

以上就是《如何在存储库中创建嵌套的 go 模块?》的详细内容,更多关于的资料请关注golang学习网公众号!

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