【发布时间】:2020-09-12 11:54:14
【问题描述】:
我正在编写两个二进制文件,它们都使用两个库(我们可以称它们为 libA 和 libB)。
每个库都在一个专用的 git repo 中,带有 git-tags 来声明版本。 例如,libA 是 v1.0.9,libB 是 v0.0.12。
两个二进制文件都有 CLI 标志,我想添加一个调试标志来显示这样的 lib 版本:
> ./prog -d
Used libraries:
- libA, v1.0.9
- libB, v0.0.12
我不知道该怎么做。
我看到从“外部”设置变量的唯一方法是使用 ldflags(例如go build -ldflags="-X 'main.Version=v1.0.0'")。但是这种方式似乎没有可扩展性,如何添加一个libC?这也意味着要管理标签两次,一次为 git,一次在 goreleaser.yml 或 makefile 中。
你能帮我找到解决办法吗?
【问题讨论】:
标签: go go-modules