小编Séb*_*ien的帖子

Golang - 如何从代码内部显示模块版本

我正在编写两个二进制文件,它们都使用两个库(我们可以称它们为 libA 和 libB)。

每个库都位于专用的 git 存储库中,并使用 git 标签来声明版本。例如,libA 的版本为 v1.0.9,libB 的版本为 v0.0.12。

两个二进制文件都有 CLI 标志,我想添加一个调试标志来显示 lib 版本,如下所示:

> ./prog -d
Used libraries:
- libA, v1.0.9
- libB, v0.0.12
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做。

我看到从“外部”设置变量的唯一方法是使用 ldflags (go build -ldflags="-X 'main.Version=v1.0.0'"例如)。但这种方式似乎不可扩展,如何添加libC?它还意味着管理标签两次,一次在 git 中,一次在 goreleaser.yml 或 makefile 中。

你能帮我找到解决方案吗?

go go-modules

10
推荐指数
1
解决办法
5963
查看次数

标签 统计

go ×1

go-modules ×1