当前位置: > > > > 如何在存储库中创建嵌套的 go 模块?
来源:stackoverflow
2024-04-20 18:33:33
0浏览
收藏
学习Golang要努力,但是不要急!今天的这篇文章《如何在存储库中创建嵌套的 go 模块?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!
问题内容
我很难理解如何使用包构建 go 项目,尤其是当该项目嵌套在存储库中时。
我希望在我的 go 应用程序的存储库中具有以下文件夹结构。
github.com/user/repo └── client └── server └── <create go application "package main" code here> └── package1 └── <create package 1 code here>
我想在存储库的 server
目录中创建我的 go 应用程序/模块。但是我不确定这样做的正确或“最佳实践”是什么。
- 我不确定是否应在存储库的根目录或子目录
server
中创建go.mod
文件? - 我的
go.mod
文件中的模块名称应该是github.com/user/repo
或github.com/user/repo/server
吗? - 如果我在
server
文件夹的package1
子目录中有一个名为package1
的包,那么导入它的导入路径是什么?
正确答案
一般最佳实践是将 go.mod
文件放在存储库的根目录下,并且每个存储库仅包含一个模块。然后,存储库中的所有包都将位于同一模块中并共享相同的依赖项。
可以在单个存储库中定义多个模块,但这样做会增加大量维护开销:如果您有多个模块,它们将被视为完全独立的;您必须显式管理它们之间的依赖关系,并且必须显式地为它们标记单独的版本。
对于大多数项目来说,额外的开销带来的好处很少:主要是它允许您在不同时间为不同模块标记稳定版本。根据我的经验,对于大多数项目来说,额外的灵活性不值得付出维护成本。
以上就是《如何在存储库中创建嵌套的 go 模块?》的详细内容,更多关于的资料请关注公众号!