Golang小技巧-在单个仓库中支持多个 go mod 模块

背景

最近在写Go,有一个项目是多模块的,版本的发布都是在一起的,为了其他项目使用这些模块,所以需要在一个仓库中实现多个模块的发布。

仓库结构

仓库结构如下:

1
2
3
4
5
6
7
8
.
├── README.md
├── a
│   ├── a.go
│   └── go.mod
└── b
├── b.go
└── go.mod

其中a/go.mod使用如下命令生成:

1
go mod init github.com/robberphex/go-test-multi-module/a

版本发布

由于是多模块,所以使用不同的tag。tag名字统一为<模块名>/<版本号>

比如现在的tag有:

阅读更多