在monorepo环境中发布go模块
假设我有一个monorepo,并且有几个单独的golang服务:在monorepo环境中发布go模块,go,go-modules,Go,Go Modules,假设我有一个monorepo,并且有几个单独的golang服务: root └── services ├── svc1 │ ├── go.mod │ ├── go.sum │ └── main.go └── svc2 ├── go.mod ├── go.sum └── main.go 而svc2将来将依赖于svc1。此外,还
root
└── services
├── svc1
│ ├── go.mod
│ ├── go.sum
│ └── main.go
└── svc2
├── go.mod
├── go.sum
└── main.go
而svc2将来将依赖于svc1。此外,还要求svc1和svc2可以单独释放
有没有一种方法可以独立发布模块?go mod文档仅假设存在回购,因此它不提供这种灵活性。它应该可以正常工作
A由存储库根(即VCS中的根目录)和模块路径(如果“存储库的根目录中未定义模块”)组成
因此,使用示例中给出的目录树,您可以添加svc1的go.mod
:
module github.com/root/services/svc1
go.mod
module github.com/root/services/svc2
参考资料:模块的语义版本由存储库标签决定,因此我认为您无法在同一存储库中(至少在git上)分别对每个模块进行版本设置。您可能会发现go wiki的这一部分很有帮助,我如何分别对每个模块进行版本设置?@Kintarō这个问题与您的VCS设置有关。如何对VCS中的两个模块进行版本设置?