在Java-Git项目中存储版本

时间:2014-10-24 10:50:31

标签: java git version versioning

存储应用程序版本的最佳方法是什么?

我使用Git tagging在Git存储库中存储semantic version number。但我还想打印出程序用户的版本号(当用户调用./myprogram --version时f.ex。)。因此,我还必须在每个新版本的Java源代码中手动更改String常量。

是否有更智能的方法将版本号保存在Git存储库中并且源代码保持同步?

2 个答案:

答案 0 :(得分:2)

您可以使用

从git获取当前标记
git describe [--abbrev=0] > localFileForTag

如果将该行放入脚本并在构建过程中运行该脚本,则可以将当前标记存储在本地文件中。您的程序只需要阅读和打印文件内容。

答案 1 :(得分:1)

在我们的项目中,我们使用git-commit-id-plugin作为maven。您可以生成程序可以在运行时读取的内容,例如包含静态字段的Java类或读取的属性文件。

如果你不使用maven,你的构建工具肯定会有一个插件,或者至少可以以某种方式调用git describe(正如其他人所建议的那样)。